Queremos presentarles la mejor manera de añadir snippets de código PHP a sus sitios. ¿Alguna vez recibieron como respuesta “pega lo siguiente en el archivo functions.php”, junto con una porción de código? Ese es el peor consejo que se puede dar, y al echar un vistazo más allá de la superficie entenderán el por qué.

Añadir snippets de código PHP al archivo functions.php del tema hijo

Queremos desechar de inmediato la idea y decir que no tocaríamos el archivo functions.php original ni con un palo. Ese archivo es del tema principal en uso. Se actualizará o eventualmente reemplazará. ¿Saben qué pasaría entonces? Todos los códigos PHP personalizados se pierden. Además, estarían metiéndose con un archivo que ya tiene un montón de código necesario, puesto ahí por el desarrollador por una razón. Eso no está bueno.

Por lo tanto, ya que el archivo functions.php es un lugar perfectamente correcto para los snippets de código PHP, querrán usar un tema hijo para tal propósito. Un tema hijo es algo que coexiste con el tema principal. El objetivo fundamental es darnos un lugar para las modificaciones, por lo general de estilos y funciones personalizadas. Entonces, ¿cómo ponemos manos a la obra con un tema hijo?

  • ¿El tema ya viene con un tema hijo? ¿Los autores ofrecen uno? Bien, finalmente podrán hacer uso de él. Instálenlo.
  • Si no, siempre se puede usar el plugin Childify Me para crearlo.
  • En el caso de que se consideren aventureros, como nosotros, creen el suyo propio a mano, siguiendo las instrucciones.

Asegúrense de que el tema hijo tenga un archivo functions.php esencialmente vacío, y añadan el código personalizado allí. Se recomienda usar un pequeño /* comentario */ como encabezado de los snippets donde se pueda describir de qué trata el código y así reconocerlo en el futuro. Puede ser un código que se usará independientemente del tema. Por eso, si algún día cambian de tema, el código podría ser aplicado allí también. Lo mejor es que sobrevivirá a las actualizaciones del tema principal. Vale mencionar que este archivo está pensado para servir a un tema y su contenido está relacionado con ese tema.
Archivo functions.php


Archivo functions.php estructurado

No sería el eslogan de Let’s WP si no les dijéramos cómo hacerlo. Aunque la sección anterior era correcta, nos gusta ir un paso más adelante, al altar de la estructuración. Nos dimos cuenta de que agregamos tantos snippets de código PHP a nuestro archivo functions.php, que se incrementó en miles de líneas. Si tienen alguna ambición de desarrollador, les recomendamos lo siguiente.

Pongan todos los snippets que hacen tareas similares, en archivos PHP separados, dentro de una carpeta del tema hijo (/includes/ sería un nombre estándar). Solo inclúyanlos en el archivo functions.php del tema hijo, de esta manera:

<?php
$dir = get_stylesheet_directory();
/**
* Añadir botón de resaltado de código en TinyMCE.
*/
include_once( $dir . '/includes/lwp-tinymce.php' );

Definan un patrón de agrupación que les asegure que abren el archivo correcto para encontrar el snippet que están buscando. Nosotros usamos archivos para propósitos de “cosmética general”, para la carga diferida, o para el indicador de dificultad. En seguida notarán que estos archivos son como pequeños plugins. Y esto no se aleja mucho de nuestra idea.

Crear un pequeño plugin con los snippets de código PHP

¿Listos para adentrarse en el mundo del desarrollo de plugins? Un plugin de WordPress no tiene por qué ser esa cosa grande y complicada por la que pagamos o nos descargamos del repositorio oficial. Caray, que ni siquiera necesita de una carpeta. Como alternativa, varios plugins hasta pueden residir en la misma carpeta de plugins. Es solo un pequeño archivo PHP con un puñado de snippets. Así que la próxima, pueden experimentar agregando los snippets de código PHP como plugin.

No hace falta estudiar la lección completa para escribir un plugin. Por suerte, lo único que se necesita realmente para convertir un archivo PHP en un plugin es añadir las cabeceras del plugin. Completen las cabeceras con alguna información relevante, que aparecerá en la lista de plugins. Para su conveniencia, aquí presentamos lo mínimo indispensable para comenzar un plugin:

<?php
/*
Plugin Name: Nombre corto para el snippet
Description: Describir aquí para qué sirve el snippet
*/

Hasta la descripción es opcional, pero siempre tiene sentido escribir una, así sabremos en el futuro de qué van esos códigos. ¿Quién hubiera pensado que eso es suficiente para hacer de un snippet un plugin? Por supuesto, el archivo debe ir en la carpeta /wp-content/plugins/, pero ¡eso sería todo! De aquí en más y gracias a esto, los snippets sobrevivirán también a los cambios de tema. En la lista de plugins se puede activar o desactivar cada snippet para el que hayan hecho un plugin separado.

No hará falta instalar plugins de terceros para gestionar los snippets. Aunque todo el mundo es libre de usarlos, para nosotros es un “gasto innecesario”.

Que los plugins “imprescindibles” carguen los snippets

Los MU Plugins, o plugins imprescindibles, son especiales. Estos se ejecutan antes de cualquier otro plugin, y también en una instancia anterior al proceso que genera el sitio para el visitante. Estos plugins hasta tienen el poder de desactivar o activar los plugins normales en páginas específicas. No se pueden desactivar (ni aun por accidente) desde la lista de plugins. Los MU Plugins cargan automáticamente en todos los sitios de la red, si es que usamos instalaciones multisitio.

Nota de la admin: Esta entrada fue publicada originalmente el 2 de octubre de 2018 en el blog Let’s WP, y actualizada el 19 de febrero de 2020.

Firsh