Ganchos de WordPress: la guía esencial

Publicado: 2021-01-26

Los ganchos de WordPress son una herramienta útil diseñada para desarrolladores que crean complementos y temas de WordPress. De hecho, son tan útiles que los creadores de WordPress los utilizan en todo el núcleo de WordPress. Pero, ¿qué son exactamente los ganchos de WordPress y cómo los usa?

En esta guía, veremos cómo usar eficazmente los ganchos de WordPress y profundizaremos en los fundamentos. ¡Vamos a sumergirnos!

En esta guía

    ¿Qué son los Hooks en WordPress?

    En pocas palabras, los ganchos de WordPress son fragmentos de código de WordPress que capturan y ejecutan fragmentos de otras partes del código de WordPress. Básicamente, permiten a los desarrolladores saltar fácilmente entre varios archivos en sus temas y complementos.

    Los ganchos de WordPress vienen empaquetados en el núcleo de WordPress. Todos los temas y complementos también los utilizan.

    Explicación de los ganchos de WordPress

    El propósito principal de los hooks en WordPress es permitir a los desarrolladores cambiar fundamentalmente la forma en que opera el sistema de administración de contenido sin alterar los archivos centrales de WordPress. Debido a que WordPress es de código abierto, podría meterse con los archivos principales, pero hay un 99% de posibilidades de que se arrepienta en cuestión de minutos.

    Aunque puede ser un poco difícil de entender para los desarrolladores más nuevos, es absolutamente fundamental aprender cómo funcionan los enlaces de WordPress. La mayor parte del tiempo surge confusión debido a la terminología que usa WordPress. Aunque la acción detrás de escena es bastante similar a la de muchos lenguajes de programación, la verborrea es diferente. A menudo, es más fácil aprender a crearlos y usarlos si primero sigue ejemplos, lee sobre ellos y luego practica.

    Para escribir enlaces de WordPress, deberá poder codificar en PHP. PHP es el lenguaje subyacente para la gran mayoría de WordPress. Puede pensar en los ganchos como aberturas en las que otras funciones de PHP pueden engancharse. También puede pensar en los ganchos de WordPress como devoluciones de llamada que hacen algo con los datos o la pantalla antes de que el usuario vea los datos.

    Ganchos de WordPress

    Dos tipos de ganchos de WordPress

    Hay dos tipos principales de ganchos de WordPress que necesitará aprender:

    • Ganchos de acción de WordPress
    • Ganchos de filtro de WordPress

    Echemos un vistazo a estos dos tipos de ganchos de WordPress y en qué se diferencian. También exploraremos algunos ejemplos de ganchos de acción y de filtros para ilustrar mejor su uso.

    La diferencia entre los ganchos de acción de WordPress y los ganchos de filtro

    Si ha pasado tiempo revisando el códice de WordPress, probablemente haya visto estos términos de forma casual. Desafortunadamente, una de las debilidades del códice es que está escrito por los propios desarrolladores. Como efecto secundario, algunas distinciones importantes que pueden ser obvias para ellos, no son obvias para aquellos que no están tan familiarizados con el código central de WordPress.

    La forma más fácil de diferenciar entre los dos tipos de ganchos de WordPress es que los ganchos de acción no devuelven valores, mientras que los ganchos de filtro devuelven valores.

    Para aquellos familiarizados con lenguajes de programación comunes, esto es como decir que los ganchos de acción tienen un tipo de retorno “vacío”, mientras que los ganchos de filtro devuelven datos reales.

    Los ganchos de filtro se pueden considerar como eventos o ganchos de preprocesamiento. Un gancho de filtro puede filtrar los resultados devueltos de una consulta de base de datos para que solo contengan entradas con el apellido "Smith". Este enlace de filtro debe llamarse antes de que se llame a la consulta de la base de datos real, indicándole a WordPress de antemano que necesitará obtener resultados irrelevantes antes de devolverlos.

    Se puede pensar que los ganchos de ction de WordPress recuperan algo a través del código. Un ejemplo común de un gancho de acción es la inserción de un archivo CSS adicional en la página de un sitio para que se vea de manera diferente. Recuerde, los ganchos cambian la forma en que se muestran los datos incluso antes de que se entreguen al usuario. Un gancho de acción ofrece un nuevo archivo CSS que mejora la experiencia del usuario. Este proceso no implica editar el núcleo de WordPress ni requiere editar la raíz web principal del sitio. De esta manera, los ganchos de WordPress pueden hacer que sea mucho más fácil, junto con los complementos, administrar varios sitios de WordPress.

    Explicación de ganchos y filtros

    Ahora que hemos visto una descripción más abstracta de los enlaces y filtros de WordPress, profundicemos en los detalles más técnicos de cómo funcionan.

    Puede pensar en un gancho de WordPress como un evento que ocurre con un nombre. Un ejemplo de uno contenido en el núcleo de WordPress se llama save_post . Con los ganchos, esencialmente decimos que cuando se ejecuta save_post , queremos que nuestro gancho o filtro se adjunte y se ejecute junto a él.

    Adjuntamos lo que se denominan devoluciones de llamada, o funciones de devolución de llamada, a los ganchos en WordPress. Esta es solo una forma elegante de decir que le estamos pidiendo a WordPress que ejecute el código contenido en las funciones que hemos creado cuando se activa el evento que "enganchamos" (como save_post en nuestro ejemplo anterior).

    Si bien es bastante fácil agregar enlaces de WordPress, como exploraremos más adelante, recuerde que una devolución de llamada escrita incorrectamente puede arruinar por completo su cadena de devoluciones de llamada. Si esto ocurre, un eslabón roto en la cadena de devoluciones de llamada puede arruinar por completo todo su arduo trabajo. Siempre haga una copia de seguridad antes de realizar cambios. Aproveche un complemento de respaldo de WordPress confiable antes de realizar cualquier cambio.

    ¿Está interesado en conocer más detalles técnicos sobre cómo funcionan los ganchos? ¡Mira la siguiente sección! ¡Tenemos una explicación más detallada, así como un tutorial sobre cómo crear su primer gancho de acción y su primer gancho de filtro!

    ¿Cómo funcionan los Hooks en WordPress?

    Recuerde, aunque hay algunas diferencias, los ganchos de acción y los ganchos de filtro en WordPress pueden considerarse prácticamente iguales. Repasemos brevemente cómo funcionan estos ganchos. Repasaremos un ejemplo y un tutorial más adelante en el artículo.

    Ambos tipos de ganchos deben registrarse con WordPress antes de usarlos. Esto le da al CMS la lista de funciones para adjuntar cuando se ejecuta un evento al que hemos "enganchado" nuestro código. Además, asegúrese de que las acciones se registren como acciones y los filtros se registren como filtros.

    Al agregar una acción, aproveche la función principal de WordPress add_action () . Cuando agregue filtros, use la función principal de WordPress correspondiente llamada add_filter () . Si sus devoluciones de llamada (funcionan en la cadena cuando se ejecuta su evento o acción) no devuelven ningún dato, debe registrarlo como una acción. Si devuelve lo que WordPress denomina datos filtrables, regístrelo como filtro.

    Todo lo que especifique en estas funciones se ejecuta cuando un usuario abre su sitio. WordPress tiene un generador interno que reúne todas estas acciones y filtros para nosotros. También hay funciones de eliminación correspondientes para acciones y filtros. Estos se pueden utilizar para eliminar una función de su cadena de devolución de llamada. A menudo están contenidos en declaraciones condicionales en WordPress PHP.

    Al igual que nuestras funciones de adición, se llaman remove_action () y remove_filter () .

    ¿Cómo creo un gancho en WordPress?

    ¡Por fin ha llegado el momento de hacer nuestro primer gancho en WordPress! Recuerde que la creación de ganchos implica agregar código personalizado que se mostrará y mostrará a los usuarios de nuestro sitio.

    Solo tenga en cuenta que cada vez que agregamos un código personalizado, agregamos algún nivel de riesgo de seguridad. Es por eso que ahora mismo sería un momento ideal para asegurarse de que tiene un complemento de seguridad de WordPress en el que puede confiar instalado y listo para usar. Esto puede ayudar con la tranquilidad y mejorar cualquier amenaza potencial a su sitio a través de un código personalizado que podría introducir nuevas vulnerabilidades.

    Obtenga el contenido adicional: una guía para la seguridad de WordPress
    Haga clic aquí

    Echemos un vistazo a cómo podemos hacer un gancho de acción muy simple en WordPress. Luego veremos un ejemplo de un gancho de filtro en el CMS.

    ¿Cómo creo un gancho de acción en WordPress?

    Para nuestro ejemplo de acción, hagamos algo que casi todos los desarrolladores de WordPress deberán hacer en algún momento: ajustar el contenido en la página de inicio de sesión de WordPress. La página es muy genérica.

    Por ejemplo, si administra un sitio de WordPress para una institución académica, es posible que le pidan que recuerde a los estudiantes que usen la dirección de correo electrónico de su campus para iniciar sesión en su portal de WordPress. Podríamos agregar un recordatorio simple debajo de los cuadros "Nombre de usuario" y "Contraseña" que diga " Recuerde usar su correo electrónico @ myuniversity.edu como su nombre de usuario " para reducir las llamadas al departamento de TI pidiendo ayuda para iniciar sesión.

    Esto, por supuesto, estaría más alineado con un gancho de acción que con un gancho de filtro. Esto se debe a que un ajuste simple, como editar el texto en la página principal de inicio de sesión del usuario, en realidad no devuelve ningún dato para filtrar.

    Primero, tendremos que averiguar dónde exactamente enganchar nuestra acción. En la mayoría de los casos, mirar el archivo PHP donde desea agregar contenido puede ser muy revelador. Echando un vistazo al archivo de WordPress que contiene el contenido de inicio de sesión, hay varios activadores de acción. En nuestro ejemplo de nuestro recordatorio a los estudiantes para que utilicen sus correos electrónicos institucionales, notará el siguiente código bastante interesante en el archivo PHP de la página de inicio de sesión:

     do_action ('login_footer');

    La función do_action es una función principal de WordPress que realiza nuestro gancho de acción a pedido. Por supuesto, esto siempre que hayamos registrado todas las funciones que queremos adjuntar a este gancho.

    En este caso, "login_footer" es un gancho prediseñado por el equipo de WordPress. Aunque está integrado, aún podemos adjuntarle nuestro propio código. De forma predeterminada, este gancho carga el contenido del pie de página de la página de inicio de sesión genérico. El pie de página sería un lugar ideal para nuestro texto, por eso estamos aprovechando este gancho de sección de página.

    Podemos agregar una nueva función PHP a nuestro wp-login.php para comenzar. Todo lo que tenemos que hacer es generar una línea de texto, así:

     function add_uni_email_reminder () {
    
    <p> ¡Recuerde usar su correo electrónico @ myuniversity.edu como su nombre de usuario! </ p>
    
    }
    
    do_action ('login_footer', 'add_uni_email_reminder');

    En este caso, simplemente hemos creado una nueva "acción" en el archivo wp-login.php . El nombre de la función del gancho de acción (add_uni_email_reminder), sin los paréntesis de parámetros, se puede agregar a la lista de parámetros de do_action () para registrarlo y ejecutarlo cuando se muestre el pie de página a continuación.

    ¿Cómo creo un gancho de filtro en WordPress?

    ¡Ahora estamos en una buena racha! Hemos aprendido los conceptos básicos de los ganchos de WordPress y cómo aprovechar su poder. ¡Incluso hemos realizado una pequeña modificación nosotros mismos! La única parte importante que queda es practicar con ganchos de filtro. Recuerde, estos son ganchos que devuelven algún tipo de datos que podemos filtrar. Estos son un poco más complejos que los ganchos de acción, pero ahora que comprende los conceptos básicos de los ganchos, debería ser un poco más fácil.

    Comencemos con nuestro gancho de filtro de WordPress. Primero, tendremos que decidir qué filtro específico nos gustaría agregar. Un elemento que su cliente podría solicitar es personalizar la funcionalidad de adición de página. Aquí es donde los usuarios de WordPress pueden agregar nuevas publicaciones de blog. Para que sea lo más simple posible, digamos que queremos editar el texto “Ingrese el título aquí” contenido en el cuadro de texto “Título”. Digamos que queremos que sea más específico y que diga "Ingrese el título de la publicación del blog" en su lugar.

    Observe que en nuestro ejemplo de gancho de filtro a continuación, nuestra función tiene un parámetro. Además, la ejecución real de nuestro filtro tiene un parámetro de "prioridad" adicional. También notará que la función real que usamos para registrar nuestro gancho es exactamente la misma que en nuestro ejemplo de "acción", add_action . La forma en que podemos decir que esta función es un gancho de filtro en lugar de un gancho de acción es que cuando realmente se ejecuta, la función ejecutada como podemos ver en el código central de WordPress es apply_filters ('enter_title_here', __ ('Enter title here' ), $ publicación); . Estamos aplicando filtros como sugiere el nombre de la función.

    Este suele ser un punto de inflexión para los usuarios más nuevos. Realmente es solo un pequeño problema de redacción; Una vez que superas eso, ¡descifrar la diferencia entre ganchos y filtros en WordPress se vuelve bastante simple! Sin más preámbulos, ¡sumergámonos en cambiar ese texto de marcador de posición!

     function our_new_title_here ($ title) {
    
    $ title = __ ('Ingrese el título de la publicación de blog', 'dominio de texto');
    
    return $ título;
    
    }
    
    add_action ('enter_title_here', 'our_new_title_here', 10);

    Quizás se esté preguntando qué significa ese "10" en nuestra función add_action . Con suerte, comprende los dos primeros parámetros; el primero es el gancho predeterminado de WordPress, y el segundo es el nombre de la función y el filtro que estamos adjuntando a enter_title_here . El "10" es el nivel de prioridad que le estamos asignando a este filtro.

    Recuerde, tanto las acciones como los filtros en WordPress son una serie de "devoluciones de llamada" en cascada o funciones personalizadas que se ejecutan. A estos se les asignan diferentes niveles de prioridad. Exploraremos qué significan los diferentes números, qué parámetros aceptables, etc., un poco más adelante. Sin embargo, es importante entender que 10 es el nivel de prioridad "normal" predeterminado de WordPress para filtros y acciones por ahora.

    ¿Dónde se almacenan los hooks de WordPress?

    Quizás se pregunte dónde podría WordPress almacenar todas estas acciones y filtros. Hemos hecho referencia al núcleo de WordPress, pero esta es simplemente la ubicación de las acciones y filtros incorporados y las funciones adjuntas a ellos. Los usuarios experimentados de WordPress probablemente sepan que estos ganchos no se almacenan en ninguna de las bases de datos creadas cuando se instala WordPress.

    Una de las características más exclusivas de las acciones y los filtros en WordPress es que en realidad no están "almacenados" en ningún lugar. Una vez que hayamos agregado una acción o filtro, se puede acceder a esa acción o filtro globalmente en todo nuestro sitio de WordPress. Si cree que no hay forma posible de que no se almacene en ninguna parte , ¡está en lo correcto!

    Aunque la estructura es bastante compleja, hay una variable PHP donde se almacenan todas nuestras acciones y filtros. Esta variable es global y se llama $ wp_filter . ¡No te metas con esta variable directamente!

    Para aquellos interesados ​​en los detalles técnicos, esta variable $ wp_filter es una matriz PHP. Contiene una gran serie de objetos del tipo WP_HOOK . Dentro del archivo PHP que puede leer en wp-includes / class-wp-hook.php , hay un método importante: this-> apply_filters () . Este método es lo que activa todas nuestras devoluciones de llamada y "registra" nuestros filtros y ganchos personalizados. Es esencialmente el pan y la mantequilla de los ganchos de WordPress.

    Para aprovechar al máximo esta increíble característica de WordPress, necesitaremos conocer algunos de los trucos más comunes de WordPress. ¡No busque más allá de nuestra hoja de trucos a continuación!

    Lista de enlaces de WordPress: Hoja de referencia de enlaces de WordPress

    Comencemos con una pequeña dosis de realismo: no hay forma posible de que podamos repasar cada gancho en WordPress. Afortunadamente, algunos investigadores han compilado una lista de (literalmente) cada acción y filtro, para aquellos que sienten curiosidad. Puede ver una lista completa de todos los ganchos de WordPress aquí, pero tenga cuidado de mirar las advertencias de seguridad con respecto a cada gancho. No debe utilizar ninguno que esté etiquetado como "obsoleto". Esto significa que pueden o no ser compatibles con la versión más moderna de WordPress, pero de cualquier manera, pronto no serán compatibles.

    Con toda probabilidad, el 90% de las veces, solo te interesarán unos pocos ganchos de WordPress. Aquí hay cinco de las acciones y filtros más populares en WordPress, junto con una breve explicación de lo que son.

    1. add_setting () : tal como sugiere su nombre, esta acción se agrega a la configuración de WordPress. Probablemente no desee incluir esta acción en ninguna página de cara al usuario, pero puede salvarle la vida si está modificando páginas administrativas.
    2. apply_filters () - ¿Te parece familiar? ¡Debería, porque lo usamos antes! Esto inmediatamente llama a toda nuestra cadena de devoluciones de llamada asociadas con un gancho.
    3. esc_attr () : el nombre de este es una abreviatura de "atributos HTML de escape". Escapar HTML significa que usamos códigos ASCII para símbolos HTML. Esto se usa casi universalmente para "desinfectar la entrada" en las páginas. En otras palabras, sería muy deseable adjuntar esta acción a una ejecución de enlace cuando un usuario envía un formulario. Evita que los usuarios ataquen su sitio con ataques de secuencias de comandos entre sitios en particular.
    4. the_content () - ¡El nombre de este gancho probablemente suene simple, porque lo es! Simplemente toma el contenido de la publicación actual que se está viendo. Esto es ideal si permite a los usuarios exportar el contenido de una publicación. Por ejemplo, algunos sitios ofrecen a los usuarios Premium la posibilidad de exportar cualquier artículo como archivo PDF.
    5. wp_nav_menu () - Abreviatura de "Menú de navegación de WordPress", este gancho es un gancho de acción. Se utiliza para mostrar simplemente el menú de navegación principal que crea cuando crea su sitio de WordPress por primera vez. Esto es genial si tiene páginas que tienen un diseño significativamente diferente y desea mostrar su menú en un área alternativa.

    ¿En qué orden se ejecutan los Hooks de WordPress? La secuencia de activación de los ganchos de WordPress

    Desafortunadamente, el orden exacto en que se ejecutan los enlaces de WordPress no es tan evidente como podría imaginar. Esto se debe al gran volumen de anzuelos. Un investigador realizó un análisis avanzado de esto para contar la cantidad de ganchos en ejecución y el orden en que se ejecutaron cuando se visitó la página de inicio de un sitio de WordPress.

    Como si esto no fuera lo suficientemente complejo, ¡algunos ganchos de WordPress tienen ganchos adjuntos de varias prioridades! Puede echar un vistazo a los cientos de ganchos que se ejecutan y sus órdenes en esta publicación sobre la secuencia de activación de los ganchos de WordPress. Solo tenga en cuenta: no debe intentar ejecutar este análisis en nada más que en un servidor de prueba donde pueda permitirse perder todo.

    Si bien no podemos hacer mucho con el orden de los ganchos predeterminados, podemos hacer algo con el orden de los ganchos que especificamos. Aquí es donde entra la prioridad de los ganchos. Ya lo mencionamos anteriormente.

    ¿Cómo funciona la prioridad en los Hooks de WordPress?

    Como mencionamos, el nivel de prioridad predeterminado asignado a un gancho por WordPress es "10". Independientemente de lo que decida como prioridad, recuerde que el valor debe ser un número entero positivo. Esto significa que, desafortunadamente, "0" no es un valor válido. Además, -100 no sería válido y 0.5 no sería válido. Sin embargo, 1 funcionaría, al igual que 1111.

    En general, cuanto menor sea el número entero, menor será la prioridad. Si desea que un gancho se ejecute después de un gancho al que asignó el valor predeterminado de 10, por ejemplo, podría hacer que su prioridad sea 9. A su gancho de menor prioridad se le puede asignar un 1. Además, los ganchos de WordPress pueden asignarse lo mismo prioridad. Esto es así si no le importa en qué orden se ejecutan.

    Conclusión: ganchos en WordPress

    Uno de los mayores obstáculos para los nuevos desarrolladores de WordPress es la falta de estandarización de gran parte de esta información. Si bien encontrará muchos blogs técnicos, muchos cubren temas limitados y pueden ser difíciles de agregar.

    La mejor manera es comenzar a experimentar con los ganchos de acción de WordPress y los ganchos de filtro en su sitio. Una vez que haya creado ganchos de WordPress más complejos, deberá aprender los ganchos que tiende a usar con más frecuencia. Con el tiempo, memorizará estos ganchos. Es un proceso arduo y nadie es capaz de memorizar cada uno de estos ganchos.

    El códice de WordPress es el mejor recurso que puede utilizar en su viaje para convertirse en el próximo desarrollador de WordPress más importante del mundo.

    Ganchos de WordPress