En ocasiones buscando por Internet encontramos un "cacho" de código que queremos añadir a nuestro WordPress. Veamos cómo y dónde tenemos que colocarlo.
Fue precisamente en el tutorial de ayer "Crear shortcodes de contenido en WordPress" que muchos de vosotros me preguntasteis sobre los métodos para "añadir" ese código. Esto es muy típico cuando alguien busca por Internet lo de "Cómo hacer tal cosa en WordPress", y la solución que encuentra pasa por colocar unas líneas de código "por ahí". Bien, pues veamos esos "ahíes". Analicemos tres posibles formas de colocar código personalizado, de menos recomendada (peor) a más recomendada (mejor).
Añadir código personalizado a WordPress (con un plugin)
Esta opción es la más fácil, especialmente para aquellos que les da pánico tener que editar un archivo con un editor, y que cuando les dan unas líneas de código se preguntan "¿Y ahora qué hago yo con esto?"
En ese caso recomiendo el uso de un plugin que en su momento yo mismo utilicé mucho en mis inicios. Se llama Code Snippets. El desarrollador es Shea Bunge, un tío muy majo, y que sabe lo que se hace, 100% recomendado.

Nueva opción "Snippets"
El plugin en si lo que hace es añadir una nueva opción en el menú de WordPress llamada "Snippets", en la que podemos gestionar, añadir, importar o configurar el plugin.
Un "snippet" viene a ser (y que me perdonen los traductores) un "cacho" de código. En principio suelen ser no muy largos, sólo unas pocas líneas, pero pueden ser tan largos como queramos.
Así pues, le damos a "Add New" y nos encontramos con una interfaz que nos pide varias cosas, siendo lo primero el título y el código:

Un ejemplo simple de snippet
En la imagen podéis ver un ejemplo muy simple. El título es puramente descriptivo, sólo para aclararnos nosotros. Y el código, en este caso, es muy básico, sólo una linea. En el ejemplo es un código que lo que hace es ocultar la barra de administración de la web para todos los usuarios.
En principio esto esta es la única información que tenemos que poner. Pero hay otros datos opcionales que vale la pena rellenar. El primero es el alcance de ese snippet.

Podemos elegir dónde se aplica el snippet
Por defecto se aplica "everywhere", pero podríamos hacer que sólo se aplique en el panel de control, sólo en la web. Eso es un detalle por parte del desarrollador del plugin, para que el código sólo se cargue donde sea necesario. En realidad eso se debería contemplar en el propio código con una condicional, pero normalmente esos snippets que se encuentran por la red no están muy optimizados en ese sentido.
A continuación podemos poner una descripción para nosotros mismos, para poder aclararnos y saber lo que hace.

La descripción ayudará a saber qué hace cada código
Y finalmente tenemos un sistema de etiquetado, por si tenemos muchos snippets, poder organizarlos fácilmente. Una vez más, todo esto es opcional:

Podemos clasificar los snippets con etiquetas
Una vez lo tenemos todo hecho, podemos "Guardar", o "Guardar y activar". La diferencia será que la primera opción sólo guardará ese código, mientras que la segunda opción también lo activará. Así pues, eso significa que podemos tener nuestra colección de snippets preparada, y sólo activar los que nos interesen.

Podemos ver los listados de snippets y activar los que queramos
Para entendernos, es como tener una colección de mini-plugins que nosotros mismos creamos a base de copiar y pegar lo que encontramos en la red.
Así pues, esta es la primera opción que tenemos. Como digo, muy cómodo. El único problema es que en realidad este código no está en un archivo .php, donde pertenece el código, y dónde debería estar, sino que está almacenado en la base de datos de WordPress, de forma que cada vez que se visita la página se tiene que "buscar" el código en la base de datos, y aplicarlo, tema que afecta al rendimiento de la web, especialmente si hay muchos y son muy largos.
Añadir código personalizado a WordPress (en functions.php)
Vamos pues a por la segunda peor opción (o la segunda mejor, según como se mire), que consiste en meter ese código en functions.php.
Esta opción es la más clásica y típica, y seguramente si buscas soluciones por la red, verás que normalmente siempre te dicen algo del estilo "añade esto en el archivo functions.php" y tal y cual. ¿Por qué? ¿Por que este método parece que sea el que se lleva la palma?
Bien, pues básicamente porque es el más simple, pues todos los themes tienen un archivo functions.php, pues aunque no sea obligatorio, la gran mayoría (en serio, prácticamente el 100%) lo tiene. Así pues, sin necesidad de instalar un plugin como Code Snippets (como hemos visto antes), ni de crear un plugin de funcionalidades (como veremos a continuación), simplemente de debe copiar y pegar el código en cualquier lugar del archivo functions.php y listos.
¡Pero ojo! Porque resulta que ese archivo (functions.php) está dentro del directorio de nuestro theme. Eso quiere decir que si en algún momento cambiamos de theme, todos esos cambios se van a ir al garete, pues estarán ligados al theme que tengamos activo.
Y claro, si queremos mantenerlos, deberemos ir copiando y pegando uno a uno todos esos snippets al archivo functions.php del nuevo theme. ¿Os imagináis lo tedioso que puede ser eso? O incluso imaginaros que estáis buscando un nuevo theme y queréis probar 5 o 6 themes, para ver cual queda mejor. Deberéis copiar todo el código a todos los themes, para que no "pete" nada. En fin, que no vale la pena hacerlo así, pues aunque sea muy rápido, no es lo óptimo.
Añadir código personalizado a WordPress (en tu plugin de funcionalidades)
Y finalmente llegamos a la tercera y mejor opción. Crear tu propio plugin dónde meter todo tu código personalizado. O sea, todos los snippets. Eso es sin duda alguna, lo mejor.
Lo que deberemos hacer es crear un plugin (sólo la primera vez) donde meteremos todos esos snippets. Como digo, la primera vez es un poco más entretenido, pero luego ya será tan simple como hacerlo en functions.php.
Para crear un plugin simplemente tenemos que crear una carpeta dentro de la carpeta "plugins" con el nombre que queramos (por ejemplo mi-plugin-de-funciones), y ahí crear un archivo PHP con el mismo nombre (siguiendo el ejemplo sería mi-plugin-de-funciones.php).
Abriremos ese archivo y simplemente podremos lo mínimo necesario para crear un plugin, que es esto:
<?php /* Plugin Name: Mi plugin de funciones */
Y ya está. Con eso ya funcionaría, es lo mínimo necesario para que funcione. Con eso ya nos aparecerá el plugin en el listado de plugins y lo podremos instalar como cualquier otro.

¡Ya tenemos nuestro plugin creado!
Y ahí podemos meter todos esos snippets que necesitemos. Por ejemplo, con el caso anterior, el de la barra de administración, el plugin sería:
<?php /* Plugin Name: Mi plugin de funciones */ show_admin_bar(false);
Y ya está. Con eso bastaría para quitar la barra de administración. Y a partir de ahí, podríamos ir agregando tanto código como queramos, hasta hartarnos.
En realidad esto es una versión muy simplificada de plugin. Si queréis saber más sobre cómo crear ese plugin de funcionalidades, incluso sin tener que tocar código, echad un vistazo al Curso de Plugins para WordPress, concretamente en la clase Curso Plugins WordPress #1. Introducción, en la que cuento más a fondo a través de vídeos cómo hacerlo.
¿Y qué ganamos haciéndolo así, en comparación con poner el código en functions.php? Bien, pues que en este caso nuestro plugin no depende del theme que tengamos activo, de forma que podemos ir cambiando de theme sin ningún tipo de problema, pues tengamos el que tengamos, nuestro código (albergado en un plugin dentro de la carpeta "plugins") no dejará de funcionar en ningún momento, tengamos el tema que tengamos activo.
Bonus: mu-plugin
Y atención, tip para los más perfeccionistas. Si queréis rizar el rizo, hay una práctica aún más buena que la anterior, o al menos una "variación". Y es que en lugar de colocar el plugin que creamos en la carpeta /plugins/mi-plugin-de-funciones/, lo podemos colocar directamente en una carpeta llamada /mu-plugins/.
Esa carpeta es una carpeta especial que hace que todos los plugins que estén ahí, se van a activar automáticamente sin necesidad de activarlos, y además no habrá posibilidad de desactivarlos desde el panel de administración. De hecho, lo de "mu-plugins" significa "Must Use" plugins. Si lo hacemos así, nuestro plugin será indestructible, pues no se podrá desactivar ni borrar:

Los plugins "Debes usar" no se pueden desactivar ni borrar
Y ahora sí, ya tenemos nuestros snippets blindados a prueba de bombas, sin ningún problema en el caso que cambiemos de theme, y sin posibilidad que nade los desactive o borre por error.
Conclusión
Hay muchas formas de agregar código a WordPress. Podemos hacerlo a través de un plugin de snippets, del archivo de funciones de un theme, o creando nuestro propio plugin.
Deberemos elegir el camino que más nos convenga dependiendo de nuestras circunstancias y habilidad de manejar código y archivos en un FTP. Pero sin duda alguna, la mejor forma es creando un plugin "a prueba de bombas".
Y lo dicho. Si queréis saber más, echadle un vistazo a mi curso de plugins, o incluso al curso de CSS, ¡Con la combinación de ambas cosas podéis hacer de todo!