Cuando queremos agregar funciones personalizadas a nuestro proyecto de WordPress, ya sea creadas por nosotros o que hayamos visto en otros sitios web, tenemos que incorporarlas normalmente al archivo functions.php de nuestro tema activo.
El problema es, que si estamos usando un tema de terceros y este se actualiza, también será actualizado el archivo functions.php y perderemos todas las funciones que hayamos añadido manualmente.
Para evitar esto también tenemos la opción de usar un tema hijo o child-theme.
Aunque también podremos crear nuestro propio plugin de funciones y activarlo en la sección de Plugins como si de un plugin de terceros se tratara. De hecho es lo que se recomienda para agregar funciones que no tienen que ver con la plantilla instalada. Así si algún día decides cambiar la plantilla, tus funciones y configuraciones se mantendrán en tu plugin a parte.
Básicamente consiste en crear un archivo dentro del directorio de plugins de nuestro proyecto, que va a actuar como un archivo de funciones independiente del tema de WordPress, pero que todas las funciones que incorporemos a él funcionarán de igual modo.
Para hacerlo, solamente tenemos que irnos al directorio de plugins de WordPress y crear un nuevo directorio al que llamaremos por ejemplo «mi-plugin».
Ahora dentro del nuevo directorio creamos un archivo .php llamado por ejemplo «mi-plugin.php»:
Lo editamos con nuestro editor de código favorito y vamos añadir algunas líneas comentadas que serán usadas por WordPress para reconocer detalles del nuevo plugin:
<?php
/*
Plugin Name: Mi plugin de funciones
Description: Funciones adicionales para mi proyecto WordPress (no desactivar).
Version: 1.0
Author: Dani Sánchez
Author URI: https://danisanchez.net
*/
?>
Creo que no hace falta explicar las líneas pues son muy intuitivas. En el momento que guardemos los cambios, si nos dirigimos a la sección de plugins de WordPress, veremos que este ha sido detectado y reconocido por las líneas anteriores que hemos especificado:
Ahora solo tenemos que activarlo y mantenerlo activo para que todo lo que incorporemos a él funcione.
Ya no tenemos que preocuparnos de que nuestro tema se actualice y perdamos cualquier función que hayamos especificado en el functions.php, porque estarán a salvo en nuestro propio plugin de funciones.
Espero que os haya resultado de interés y nos vemos en el siguiente post! 🙂
Masquesuelas dice
De nuevo muchas gracias. Muy claro todo y fácil de seguir
Laura dice
¡Genial!
Llevaba tiempo pensando en meter todas las funciones nuevas en algún sitio porque se me estaba «yendo de madre» el asunto… y con tu post lo encontré (ahora voy a ver cómo meter los estilos aparte también, jejeje).
¡Mil gracias!
Marcelo dice
Muy interesante, muchas gracias.
¿Servirá para agregar funciones en una red multisitio?
Me explico:
No quería agregar cosas en el functions.php del child theme porque lo estoy usando en más de un sitio de la red, si uso este plugin ¿podría agregar funciones diferentes a diferentes sitios de la red?
dani dice
No tengo mucha experiencia en multisitio, pero creo que un plugin va a afectar a todas las web de la red, pues los plugins se activan para todos.
Creo que lo mejor sería crear un child-theme por cada sitio de la red (los childs se pueden activar cada uno en su sitio) y que cada web tenga su propio function.php.
Un saludo.