Aunque se recomienda utilizar un tema hijo cuando queremos realizar algún cambio sustancial en nuestra web, no siempre es el mejor método para conseguirlo. Si sólo queremos añadir funciones personalizadas en WordPress, es posible que te interese crear un plugin propio donde añadir los cambios que necesites en tu web.

Crear un tema hijo (child theme) o añadir un plugin de funciones
Seguro que ahora te preguntas si realmente es necesario tener un tema hijo o child theme cuando podemos utilizar un plugin para añadir funciones personalizadas en WordPress.
Y haces bien en dudar, porque cada uno tiene su razón de ser.
Lo que tienen en común los dos, y lo que verdaderamente los hacen importantes cuando añadimos cambios personalizados, es poder mantener todas las modificaciones que hagamos cuando el desarrollador lanza una nueva versión.
Al realizar las actualizaciones, todos los archivos son sustituidos por los de la nueva versión, y elimina cualquier tipo de modificación que hayamos podido hacer.
Nuca debemos realizar cambios directamente sobre los archivos originales de un tema, de un plugin o de WordPress.
El famoso archivo "functions.php" de WordPress
Parece un archivo importante, pero en realidad el archivo "functions.php" no es necesario para crear un tema de WordPress, aunque prácticamente todos los desarrolladores lo utilizan.
Que no sea necesario no quiere decir que podamos eliminarlo. Si existe es porque contiene funciones importantes para el funcionamiento de nuestra web.
Es el primer archivo que lee WordPress, y por eso se utiliza para colocar las funciones más importantes que los temas necesitan para su correcto funcionamiento.
Nosotros podemos aprovechar esta información para crear o añadir funciones personalizadas en WordPress y mejorar nuestro sitio.
Pero siempre siguiendo las recomendaciones que sugiere la comunidad de WordPress para no tener problemas.
Utilizar un tema hijo para añadir funciones personalizadas en WordPress
Un tema hijo, llamado también en inglés child theme, es la opción recomendada por WordPress para realizar cambios, visuales o de comportamiento, del tema que estamos usando.
Es una capa adicional al tema padre (un tema hijo nunca sustituye al tema padre) para que los cambios que realicemos no los perdamos cuando venga una nueva versión o actualización del tema principal.

En el tema hijo sólo debemos añadir cambios que afecten directamente al tema que estamos usando. Por ejemplo cambiar los créditos del pie de página que son exclusivos del tema, en el que hay que modificar el archivo del footer.
Igual pasa con el archivo "functions.php" que encontramos dentro del tema hijo, donde añadiremos funciones que afecten exclusivamente al tema.
De esta forma, cuando quieras cambiar de tema, que es muy posible que lo hagas pasado un tiempo, todos los cambios que has añadido al tema hijo no te importará perderlos porque no serán funcionales en el nuevo tema que elijas.
Crear un plugin para añadir funciones personalizadas en WordPress
Lo anterior es todo muy bonito, pero si hemos hecho cambios que afectan a otros aspectos que no son el tema que estamos utilizando, como pueden ser plugins o el propio WordPress, perderlos puede ser un gran problema.
Para que esto no pase, utilizaremos un plugin que vamos a crear nosotros mismos, donde colocaremos todo ese código que queremos que siga funcionando, aunque el tema sea diferente.

Suena bien ¿verdad?, pero además lo vamos a poder activar y desactivar cuando queramos desde la administración de WordPress, y también instalarlo en cualquier otro sitio que necesite de esas funcionalidades.
Una ventaja importante frente al tema hijo es que, si nos da problemas, podemos desactivarlo, renombrarlo o moverlo de carpeta y la web seguirá funcionando mientras analizamos y buscamos el origen del problema en nuestro plugin.
Un ejemplo de código que se debe colocar en este tipo de plugin lo podéis ver en cómo mostrar juntas las páginas de "Carrito" y "Finalizar compra" de Woocommerce.
Al añadir la función personalizada en el nuevo plugin, que afecta al comportamiento de Woocommerce, los cambios seguirán mostrándose sin problema, aunque cambiemos de tema.
Crear plugin para liberar al archivo "functions.php" del tema
Visto a grandes rasgos cómo hay que utilizar cada opción, vamos a empezar a crear nuestro complemento para añadir funciones personalizadas en WordPress.
Vas a ver que fácil es, sólo necesitas crear un archivo de texto plano donde colocar el siguiente código (qué tendrás que personalizar):
1 2 3 4 5 6 7 8 9 10 |
<?php /* Plugin Name: Funciones personalizadas Plugin URI: https://www.ingresosviaweb.com/ Description: Plugin para liberar de funciones el fichero <code>functions.php</code>. Version: 1.0 Author: Juan Martín Author URI: https://www.ingresosviaweb.com/ License: GPLv2 o posterior */ |
No necesitas ningún programa especial, con el "TextEdit" de Mac o el "WordPad" de Windows es suficiente. Hay que evitar los procesadores de texto que añaden basura al código y que provocarán que el plugin no funcione.
También se puede utilizar un editor de código como Brackets, libre para descargar y totalmente gratuito.
Del código anterior, lo realmente importante es la etiqueta de apertura de código PHP y la línea donde colocamos el nombre del plugin, que podemos personalizar con el que queramos, siempre entre los símbolos de la barra y asterisco, que marcan de la cabecera del plugin.
El resto es una información adicional que se mostrará en la lista de plugins de WordPress cuando lo instalemos.

A la hora de guardar el archivo le ponemos un nombre que nos guste (si tiene varias palabras las separamos con guiones medios) y añadimos la extensión .php, por ejemplo: "funciones.php" o "mis-funciones.php".
Por último, colocamos el archivo dentro de una carpeta que podemos nombrar con el mismo nombre que usamos para el archivo.
Instalar el plugin de funciones personalizadas en WordPress
Podemos hacerlo de varias formas, accediendo a los archivos del sitio a través del "Gestor de archivos" del servidor, utilizar un cliente FTP, o instalar el plugin como lo haríamos con cualquier otro plugin.
Para las dos primeras opciones es suficiente con colocar la carpeta, con el archivo dentro, en la ruta donde se instalan los plugins, que es "../wp-content/plugins/".
Para la tercera opción es necesario primero comprimir la carpeta en formato .zip para luego proceder a instalar el plugin desde la administración de WordPress con el botón "Subir plugin".

Una vez instalado podremos ver en la pestaña de los plugins el nuestro. Pudiendo activar y desactivar su estado en función de la necesidad de cada uno.
¿Y ahora que pasa? Pues de momento poca cosa, ya que el plugin está prácticamente vacío y nos toca añadir funciones personalizadas en WordPress que sirvan para nuestro propisito.
Las funciones que añadamos a continuación de la cabecera del plugin pueden ser programadas por nosotros o recogidas, copiadas y pegadas de la numerosa información que podéis encontrar en internet.
Algunos de los artículos de mi blog contienen fragmentos de uso libre que podéis localizar si os interesa usarlos.
Modificar y añadir nuevos fragmentos de código al plugin de funciones personalizadas
Podemos añadir funciones nuevas o modificar el código que tengamos desde el mismo WordPress, si no tenemos bloqueada la función de editar plugins desde la administración de WordPress (opción muy recomendada para evitar que nos puedan inyectar código malicioso).
Pero, aunque podamos hacerlo de esta forma, no es muy recomendable.
Si el código no está comprobado que funciona correctamente podemos hacer que la web deje de funcionar hasta que eliminemos el código y dejemos el archivo como estaba.
Lo ideal es descargar el archivo, modificarlo y volver a subirlo al servidor. Si está familiarizado con el "Gestor de archivos" o un "Cliente FTP" no tendrás problemas.
También puedes volver a subir el archivo con los nuevos cambios como si fuera un plugin. Te recomiendo que en este caso vayas cambiando el número de la versión.
Durante la actualización del plugin te solicitará si quieres sustituir los archivos que existen en el servidor por los nuevos, aceptas y tendrás tus funciones instaladas.
Como última recomendación te sugiero que tu archivo no contenga más de 200-250 líneas de código para evitar
Personalizar el formulario de acceso desde el plugin de funciones
Que mejor forma de terminar que con un ejemplo práctico para añadir funciones personalizadas en WordPress.
Vamos a modificar el aspecto del formulario de acceso a la administración con el siguiente código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
//Logo y formulario personalizado en login function my_custom_login_logo() { echo '<style type="text/css"> body { background: #015000; } h1 a { background-image:url(https://www.ingresosviaweb.com/wp-content/uploads/2021/02/logo-via-web.png) !important; background-size:100px !important; width: 200px !important; height: 102px !important; } .login label { color: #ffffff; } .login input { border-radius: 0px; border: none; } .login form { background: #015000; box-shadow: none; border-top: none; border-bottom: 1px dotted #f1f1f1; border-right: none; border-left: none; } .login #wp-submit { border: none; border-radius: 0px; background-color: #06a80d; } .login .wp-core-ui .button, .wp-core-ui .button-secondary { border-color: none; box-shadow: noen; } .login #nav, .login #backtoblog, .login a { text-align: center; } .login #nav a, .login #backtoblog a { color: #ffffff; } </style>'; } add_action('login_head', 'my_custom_login_logo'); add_action( 'password_protected_login_head', 'my_custom_login_logo'); //Personalizar url logo acceso add_action( 'login_headerurl', 'my_custom_login_url' ); function my_custom_login_url() { return 'https://www.ingresosviaweb.com'; } |
Este código lo añadimos a continuación de la cabecera del plugin y nos permitirá personalizar el aspecto del formulario para logarnos en la administración.
Pasando de este aspecto:

A este otro:

Es una opción muy útil si diseñamos páginas para clientes y queremos ofrecer una personalización total de la web.
El código está formado por dos trozos de código o snipptes, el primero permite cambiar el aspecto a través de código CSS y el segundo cambiar el enlace del logotipo.
Vosotros podéis cambiar el logo subiendo primero la imagen a la pestaña "Medios" de vuestro WordPress y cambiando la URL que aparece en el código por la vuestra. Dependiendo del tamaño y formas de vuestro logotipo es posible que tengáis que ajustar un poco algunos valores de tamaño.
En la segunda función que hemos añadido hay que el dominio de mi página web por el vuestro, o cuando piquéis en el logo os redirigirá a mi sitio.
Conclusión
El archivo "functions.php" que incorporan los temas, permite realizar cambios a nivel de visualización y comportamiento de un sitio creado con WordPress, pero modificarlo directamente no es una solución que perdure en el tiempo.
Para hacer bien las cosas necesitamos un tema hijo o crear un plugin para añadir funciones personalizada a WordPress, lo que permitirá que no perdamos los cambios con las actualizaciones futuras.
Ahora que has aprendido desde cero a crear tu plugin de funciones, cuando veas o busques algo que necesite de la inserción de un pequeño fragmento de código en el archivo "functions.php", ya sabes como hay que hacerlo.
0 comentarios