Una guía para usar complementos de funciones personalizadas en WordPress

Publicado: 2024-03-07

Durante más de una década como desarrollador backend de WordPress, he utilizado varios métodos para ajustar WordPress a mis necesidades y las de otros. El más común es escribir complementos de funciones personalizadas de WordPress. Como verás a continuación, esta no es la única opción ni siempre la correcta.

Si bien dedico esta publicación a los desarrolladores, los gerentes de proyectos también aprenderán cómo estos métodos se adaptan a las necesidades de su equipo y cuándo y cómo usarlos.

Estos son los métodos que estoy usando para personalizar WordPress:

  • Agrega tu código a las functions.php del tema.php
  • Escriba un complemento de función personalizada de WordPress
  • Utilice un complemento para administrar fragmentos de código personalizados
  • Bonificación: debes usar complementos

Echemos un vistazo más profundo a cada uno de estos métodos.

Agregue código a funciones.php

En los “viejos” tiempos, cuando WordPress usaba principalmente PHP en el frontend y el backend, la forma más rápida de realizar algunos cambios en su sitio era agregando el código al archivo funciones.php del tema.

Aún puedes hacer esto y, si te atreves, usa el Editor de archivos de temas en el panel de WordPress.

Código personalizado agregado al archivo funciones.php a través del Editor de archivos de tema en el panel de WordPress.
Código personalizado en el archivo functions.php del tema a través del Editor de archivos de tema.

Con el tiempo, esta pasó de ser mi forma preferida de personalizar WordPress a la que menos me gusta.

La razón principal es que functions.php está adjunto a un tema. Si ese no es un tema personalizado y alguien lo actualiza, mis ajustes desaparecerán.

La solución es crear un tema secundario que contenga los cambios relacionados con el tema principal.

Mi razón principal para no agregar tanto código personalizado al archivo functions.php es que, en realidad, la mayor parte de este código era territorio de complementos, agregando funcionalidad al sitio en general y no solo al tema.

Todavía hay dos situaciones en las que escribo código personalizado en functions.php :

  1. El código se relaciona con el tema personalizado o secundario.
  2. Probar cambios rápidos antes de moverlos a otro lugar, ya que a menudo es fácil acceder a functions.php para esto.

Además, tenga en cuenta que functions.php no es el lugar para albergar muchos cambios, ya que un solo archivo puede volverse demasiado complejo. Especialmente cuando necesito varios archivos PHP y otros tipos de archivos en mis cambios, opto por escribir un complemento de función personalizada de WordPress.

Escribir complementos de funciones personalizadas

Como se mencionó anteriormente, la mayor parte del código que agrego a mi sitio en realidad está creando o ampliando funcionalidades que son independientes del tema.

Una vez que sé que agregaré más personalizaciones a un sitio, inicio un complemento de función personalizada. Por lo general, lleva el nombre del sitio, como lo llamaría uno de WP Mayor, el complemento "Funciones personalizadas de WP Mayor".

¡El nombramiento es crucial! En primer lugar, permite a otros administradores ver que este complemento se relaciona con el sitio y probablemente solo aloja cambios para él.

En segundo lugar, mantener la carpeta del complemento y el nombre del archivo únicos evitará que su sitio de WordPress los sobrescriba accidentalmente con un complemento que tenga el mismo slug en el repositorio de complementos de wordpress.org.

Crear un complemento de función personalizada de WordPress es fácil. Todo lo que necesitas es un archivo PHP dentro de wp-content/plugins . Sin embargo, primero debe crear una nueva carpeta, ya que a menudo necesita más de un archivo para estructurar su código y es posible que desee agregar archivos para código JavaScript y CSS.

Siguiendo nuestro ejemplo, digamos que ahora tenemos la carpeta del complemento wp-content/plugins/wp-mayor-custom-functions/wp-mayor-custom-functions.php y el archivo principal.

Agreguemos un encabezado al archivo para decirle a WordPress de qué se trata nuestro complemento. Si bien el “Nombre del complemento” es suficiente para que funcione técnicamente, veamos un ejemplo más avanzado:

 /** * Plugin Name: WP Mayor Custom Function * Plugin URI: https://wpmayor.com * Description: All the cool features we custom-built for us. * Version: 1.0.0 * Requires at least: 6.2 * Requires PHP: 8.1 * Author: Thomas Maier */

Esto ya debería aparecer en "Complementos" en nuestro panel de WordPress.

Un complemento de función personalizada de WordPress habilitado en el menú Complementos.
Nuestro complemento de función personalizada en la sección Complementos.

Ahora podemos volvernos locos y agregar código PHP real a nuestro archivo.

Consejo: cuando no tengo acceso FTP a un sitio o simplemente soy vago, uso el complemento Pluginception para crear rápidamente algo que luego puedo completar con código a través del Editor de archivos de complementos en el panel de WordPress.

¿Debería ahora poner todo el código de un sitio específico en un único complemento de función personalizada dedicado?

Eso depende. Cuando sé que el código personalizado se usa en varios proyectos, lo separo en un complemento diferente. Al mismo tiempo, recopilo código dedicado a un sitio específico en un solo complemento. Cuantos menos complementos, menos repositorios de código necesito mantener.

¿Suena genial hasta ahora? Bueno, mientras administraba una empresa de complementos más grande durante los últimos años y realizaba más de cien ajustes en el sitio, noté que estos complementos personalizados todavía están muy centrados en los desarrolladores. Entonces, veamos otro enfoque en la siguiente sección.

Uso de un complemento de función personalizado para fragmentos de código

Durante la mayor parte de mi tiempo en grandes empresas de complementos, fui responsable del aspecto técnico de nuestra tienda de complementos.

Puse cualquier código que no fuera específico del tema en un único complemento de función personalizada. Todos los ajustes a los complementos y personalizaciones individuales, como redirigir tarjetas vacías a la página de precios, presentaciones de ventas adicionales u ofertas del Black Friday, se documentaron y distribuyeron en varios archivos con nombres legibles.

Bueno, “documentado” y “legible” para cualquiera que tenga acceso al código.

Aunque siempre estaba presente para hacer ajustes o responder preguntas sobre ellos, sentí que esta no era una forma eficiente y sostenible de manejar la mayoría de las funciones personalizadas.

Con cada vez más personas involucradas en la administración de la tienda y el sitio web, quería darles la oportunidad de conocer los ajustes sin tener que mantener actualizada una página dedicada en nuestra base de conocimientos.

La solución fue instalar un complemento de función personalizada de WordPress que administra todos o la mayoría de los fragmentos de código en el panel de WordPress.

Mi favorito personal es el complemento gratuito Code Snippets, pero también existen otros.

Con Code Snippets, hay un elemento de menú dedicado en el panel con todos los fragmentos.

Ahora, cualquier persona con acceso de administrador puede ver los ajustes. Utilizo nombres descriptivos para cada fragmento, uso el campo de notas para describirlo en profundidad y asigno etiquetas para agrupar cambios.

Lista de fragmentos de código en el complemento Code Snippets.
Una lista de fragmentos de código personalizados.

Mis etiquetas suelen ser el nombre del complemento o tema que se ajusta y la sección de la página correspondiente, como "WooCommerce" y "Pagar".

Ejemplo de fragmentos de código personalizados en la página del complemento Fragmentos de código.
Este ejemplo muestra un código personalizado que muestra la fecha de la última actualización debajo de las publicaciones.

Si elige buenos nombres y una buena estructura, cualquiera debería poder encontrar y comprender los ajustes. Yo incluido. Utilizo este método incluso en mis sitios personales, ya que me proporciona mucha comodidad.

El uso de un complemento de función personalizada es especialmente útil para fragmentos de código que solo necesita temporalmente, como algún código de limpieza que solo necesita ejecutarse una vez de vez en cuando o alguna acción frontal como habilitar una promoción.

¿Es esto seguro?

De forma predeterminada, WordPress permite que cualquier persona con la función de "administrador" edite archivos de complementos y temas en el backend. Usar un complemento de código personalizado no es diferente de eso. Por lo tanto, todavía se aplica la vieja regla de estar a la defensiva y solo otorgar a todos el rol necesario.

Es posible que los desarrolladores quieran saber que algunos de los primeros enlaces en una solicitud de página no están disponibles cuando se administra el código a través de un complemento, ya que el complemento debe cargarse primero. Si necesita que su código personalizado se cargue antes que cualquier otro complemento, consulte la opción Debe usar complementos a continuación.

Funciones personalizadas de WordPress en complementos imprescindibles

Los llamados complementos "de uso obligatorio" son una clase especial entre los complementos.

Dado que se ejecutan antes que cualquier otro complemento "normal", los uso para activar o desactivar complementos específicos para una página determinada. Podría utilizar dicho código para acelerar las pseudo API o las llamadas a admin-ajax.php .

Otra característica de los complementos Must Use es que están habilitados de forma predeterminada y nadie puede deshabilitarlos o cambiarlos a través del panel de WordPress. Esto los hace ideales para código esencial al que ni siquiera los usuarios administradores deberían poder acceder.

Creando un complemento mu

Los complementos imprescindibles están alojados en la carpeta wp-content/mu-plugins . Esta carpeta no existe en una nueva instalación de WordPress. Sin embargo, algunos complementos o empresas de alojamiento pueden agregar contenido aquí de forma dinámica.

Para agregar un nuevo complemento en la carpeta mu-plugin, debe crear un archivo PHP en su computadora con el encabezado del archivo del complemento que le mostré arriba para nuestro complemento personalizado. Esta vez, no es importante elegir un nombre único ya que los complementos imprescindibles no se actualizan automáticamente.

Una vez que esté satisfecho con su nuevo complemento de función personalizada, cárguelo manualmente a través de FTP en la carpeta wp-content/mu-plugins . Cree la carpeta mu-plugins si no existe.

Si bien no puede cambiar los complementos de uso obligatorio a través del panel de administración de WordPress, puede verlos en la lista en Complementos > Uso obligatorio.

Un complemento de función personalizada de WordPress que debe usar y que figura en Complementos en el administrador de WordPress.
Los complementos que deben usarse tienen su propia pestaña dedicada en la sección Complementos.

Idealmente, los complementos que deben usarse son complementos de un solo archivo. WordPress no puede encontrarlos en subcarpetas, aunque puede hacer referencia a archivos adicionales en el archivo PHP principal. Pero si crea un complemento complejo que debe usarse, piense en mover el código principal a un complemento normal y use el complemento MU solo para cargar lo que se necesita para ejecutar antes que todos los demás complementos.

Conclusión

Hemos explorado los diversos métodos para agregar código personalizado a WordPress, desde la tradicional adición de código al archivo functions.php de un tema, complementos independientes y complementos de funciones personalizadas de WordPress hasta el uso de Must Use (mu-plugins). Cada método ofrece su propio conjunto de ventajas y posibles inconvenientes, adaptados a diferentes necesidades y escenarios.

Como puede ver, este ha sido un viaje para mí como desarrollador y director de proyectos. Todavía utilizo todos los métodos hoy en día, dependiendo del tipo de cambio y de quién debería tener acceso a él.

Espero que este artículo les ayude a ustedes, mis compañeros desarrolladores junior y senior, a tomar sus propias decisiones sobre la forma correcta de agregar código como un complemento de función personalizada en WordPress. Déjame saber en los comentarios si me perdí algo.