Cómo usar los ganchos de acción de WordPress en la personalización del tema
Los temas secundarios de WordPress ofrecen una manera relativamente fácil de personalizar la apariencia de un tema. Si las opciones del tema no le brindan opciones de diseño adecuadas, solo puede agregar una nueva regla a la hoja de estilo predeterminada del tema secundario llamada style.css. Pero que pasa cuando tu tambien quieres Modificar la funcionalidad del tema.? Ese es uno de los casos en que las acciones de WordPress vienen en su ayuda..
WordPress se ha vuelto tan popular en parte debido a su alta personalización. WordPress Core está cargado con diferentes ganchos que permiten a los desarrolladores modificar o mejorar la funcionalidad predeterminada. Además, se nos permite incluir ganchos personalizados en nuestros temas y plugins para ayudar a otros desarrolladores a adaptar fácilmente nuestro código a sus necesidades.
Acerca de los ganchos de WordPress
Los ganchos de WordPress funcionan de manera similar a los ganchos de la vida real en el sentido de que puedes capturar el pez que deseas en el lugar correcto si los usas adecuadamente.
Usted puede eliminar una función atrapada (por ejemplo, puede eliminar la barra de administración de WordPress para usuarios de bajo nivel), puede déjalo intacto y mejorarlo con su propia funcionalidad (por ejemplo, puede agregar más menús o áreas de widgets a un tema), o puede anularlo (Por ejemplo, puede modificar el comportamiento de una función principal).
Hay dos tipos diferentes de ganchos en WordPress: comportamiento y filtros. En este post vamos a echar un vistazo a cómo podemos Hacer uso de ganchos de acción en la personalización del tema..
Cómo funcionan los ganchos de WordPress
Usar un lenguaje muy sencillo., comportamiento indican que algo ha sucedido durante el ciclo de vida de la página de WordPress: se han cargado determinadas partes del sitio, se han establecido ciertas opciones o configuraciones, se han inicializado complementos o widgets, y así sucesivamente.
Filtros son diferentes de comportamiento en su naturaleza Estan acostumbrados a pasar datos a través, y modificar, gestionar o interceptar antes de mostrarlo en la pantalla o guardar los datos del usuario en la base de datos.
En cada hito significativo del ciclo de vida de la página de WordPress hay una acción o un filtrar gancho al que podamos Agregue nuestro código personalizado para modificar el comportamiento predeterminado. a nuestras necesidades.
Las acciones y los filtros determinados que se ejecutan durante una solicitud dependen de qué página solicitó el agente del usuario: por ejemplo, en una sola publicación, hay disponibles enganches de solicitud relacionados con publicaciones individuales, pero enlaces relacionados con otras partes del sitio (por ejemplo, el área de administración) no son.
Encuentra ganchos de acción
La Referencia de acción del Códice de WordPress ofrece una descripción detallada de las acciones que se ejecutan a través de diferentes solicitudes. Lo importante es que si queremos realizar una tarea necesitamos enganchar en el lugar correcto, No antes ni después, de lo contrario la acción no se completará..
Así, por ejemplo, si queremos agregar nuestro código de Google Analytics a un sitio Necesitamos que Engancha nuestra acción justo antes de que se cargue el pie de página..
Si hablamos de personalización del tema, los ganchos de acción pueden provenir de dos lugares diferentes: desde WordPress Core y el tema en si. Hay temas que no tienen ningún enganche, pero otros proporcionan a los desarrolladores algunos o muchos, siempre es la elección del autor del tema. El tema predeterminado de Twenty Fifteen solo tiene un gancho de acción para la personalización del pie de página con el nombre de 'twentyfifteen_credits'.
Si te gusta navegar por el código fuente, también puedes encontrar ganchos de acción fácilmente. Los ganchos de acción se agregan al código con la función de WordPress do_action ().
Si ejecuta una búsqueda rápida de la expresión 'do_action' en un editor de código más avanzado, como hice en Eclipse a continuación, puede ver una lista de los lugares donde puede conectar su funcionalidad personalizada al núcleo. Busqué en el / wp-includes / carpeta, pero también puede ejecutar una búsqueda de / wp-admin / Carpeta que contiene los ganchos de acción relacionados con el panel de WordPress (área de administración).
Lo bueno es que los nombres de los ganchos de acción suelen ser bastante autoexplicativos, pero hay Por lo general, un buen comentario dentro del código Eso le puede dar más información sobre si el gancho de acción dado es bueno por la razón por la que quiere usarlo..
Por ejemplo, el comentario de código antes del gancho de acción 'widgets_init' dice que “se activa después de que todos los widgets de WordPress predeterminados se hayan registrado”. Si le echa un vistazo al código antes de este enganche de acción, puede encontrar la inicialización de todos los widgets WP predeterminados antes, así que puede estar seguro de que el comentario no se encuentra, y si desea registrar su propio widget personalizado, este será el lugar correcto.
En muchos casos, el código fuente nos proporciona mucha más información que el Codex, por lo que puede ser una buena idea aprender a navegar rápidamente en él..
Añade tus propias acciones
Cuando quiera agregar su propia acción, necesita crear una función personalizada y vincular esta función a un gancho de acción específica utilizando la función de WordPress add_action (). Las acciones personalizadas agregadas con la función add_action () son usualmente activado en el lugar cuando el núcleo llama a la función apropiada do_action ().
Veamos un ejemplo simple..
Cómo encontrar el gancho de acción que necesitas
Digamos que desea agregar su favicon personalizado a su sitio. Primero, debe encontrar el gancho de acción correcto al que pueda enlazar su propia funcionalidad..
Pensemos. Si quisiera agregar un favicon a una página HTML simple, ¿dónde lo colocaría? Por supuesto, es necesario colocarlo dentro de la
Sección del archivo HTML con el siguiente marcado:Así que el gancho de acción que necesitas debe ser relacionado con la carga de la sección.
(1) Abra la Referencia de acción y vea lo que tiene para ofrecer. Tenemos suerte, ya que si navegamos por las acciones, solo podemos encontrar una, wp_head, que basada en su nombre tiene la posibilidad de estar relacionada con la carga de
sección.(2) Para estar seguros, vamos Consulta la documentación en el códice de WordPress.. El Codex informa que “Usted usa este gancho haciendo que su función de salida de eco al navegador”, así que ahora mismo parece ser perfecto para nosotros. Pero vamos a comprobarlo en el código fuente..
(3) Como este enlace no está relacionado con el área de administración, tendremos que ejecutar nuestra búsqueda en el / wp-includes / carpeta. Si buscamos la palabra 'wp-head' obtendremos muchos resultados ya que WP Core utiliza esta acción específica muchas veces.
Necesitamos buscar el lugar donde se define, así que busque la expresión acción_ ('wp_head'. Tenga en cuenta que no hemos terminado los paréntesis, ya que no podemos estar seguros de si esta acción tiene parámetros o no.
Eclipse devuelve solo un resultado que se puede encontrar dentro del /wp-includes/general-template.php expediente. El comentario antes de la definición del gancho de acción dice que “Imprime scripts o datos en la etiqueta de cabecera en la parte frontal”, Así que ahora podemos estar seguros de que wp_head es el gancho de acción que necesitamos.
Comprobación de parámetros
Cuando agregue sus propias acciones, también debe asegurarse de que el enganche que desea usar tenga o no parámetros. Puede descubrirlo fácilmente mirando la función do_action ().
La sintaxis de la función do_action () es la siguiente:
hacer_acción ('nombre_de_acción' [, $ parámetro1, $ parámetro2, ...])
Solo se requiere el nombre de la acción, los parámetros son opcionales. Si encuentra argumentos en la llamada relevante de la función do_action (), necesita Inclúyelos en la declaración de la función personalizada que cree..
Si no encuentra ninguno, entonces su función personalizada debe funcionar sin argumentos. En la definición do_action () del gancho de acción wp_head, no hay parámetros.
Comparémoslo con un gancho de acción que toma un parámetro. El gancho de acción llamado 'wp_register_sidebar_widget' toma un parámetro que siempre debe pasar a la función personalizada que vincula al gancho.
Veamos la diferencia en la sintaxis do_action () de los dos casos:
do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ widget);
En el primer caso no hay ningún parámetro, por lo que la función personalizada utilizará la siguiente sintaxis:
function my_function_without_parameters () …
En el segundo caso, hay un parámetro que siempre tiene que pasar como argumento en la declaración de su función personalizada:
function my_function_with_parameters ($ widget) …
Cómo conectar su función personalizada en
Ahora sabemos todo lo que necesitamos. Vamos a crear nuestra función personalizada que mostrará un favicon en nuestro sitio.
Primero, cree una nueva función sin ningún argumento, luego únala al gancho de acción wp_head con la ayuda de la función de WordPress add_action ().
función custom_add_favicon () echo ''; add_action ('wp_head', 'custom_add_favicon');
Necesitas pasar el nombre del gancho de acción a la función add_action () como argumento primero, entonces necesitas agrega el nombre de tu función personalizada.
Estos son los dos parámetros requeridos de add_action (). Tiene dos parámetros opcionales también, prioridad y argumentos aceptados. Veamos como usar estos.
Definir prioridades
En muchos casos, sucede que hay más de una acción vinculada al mismo gancho. Asi que cual será ejecutado primero? Aquí es donde podemos usar el $ parámetro opcional de prioridad de la función add_action ().
Añadimos la prioridad como un entero positivo., el valor predeterminado es 10. Si queremos que una acción se ejecute antes, le damos un valor más bajo, si queremos que se ejecute más tarde, le damos un valor más alto.
Entonces, si pensamos que el favicon debe estar allí temprano, podemos mejorar nuestra llamada add_action () anterior de la siguiente manera:
add_action ('wp_head', 'custom_add_favicon', 5);
Tenga en cuenta que las prioridades siempre tienen que ser establecer en relación con las otras funciones personalizadas que usan el mismo gancho de accion.
Agregue el número de argumentos aceptados
Se requiere que agregue el número de argumentos aceptados en caso de que use un gancho de acción que tome parámetros. Veamos el ejemplo que usamos antes..
El gancho de acción 'wp_register_sidebar_widget' toma un parámetro, por lo que cuando vinculamos nuestra función personalizada a este gancho, también debemos incluir esto como un argumento cuando llamamos a la función add_action ().
Nuestro código en este caso se verá así:
function my_sidebar_widget_function ($ widget) // Su código add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1);
Tenga en cuenta que debemos tambien agrega la prioridad (elegimos el valor predeterminado 10 aquí) para asegurarnos de que WordPress sabe lo que significa cada parámetro. Si omitimos la prioridad, WordPress podría suponer que 1 es la prioridad lo cual no es cierto, ya que indica el número de los argumentos aceptados.
Conclusión
Puedes hacer muchos experimentos con ganchos de acción en la personalización del tema. Por ejemplo, puede agregar sus scripts personalizados (JS) y estilos (CSS) con el enlace de acción wp_enqueue_scripts, o su código de Google Analytics con el enlace de acción wp_footer.
No solo puedes añade tus propias acciones, pero tu también puedes eliminar funcionalidades completas desde el núcleo de WordPress con el uso de la función remove_action () que usa la misma lógica que add_action ().
Si usted es un autor de temas y desea crear un tema extensible, puede ser una buena idea agregue sus propios enlaces de acción personalizados a los archivos de plantilla apropiados con la función do_action ().
Si quieres hacerlo, Piensa cuidadosamente en los parámetros que otros desarrolladores quien usara tu tema Tendrá que pasar como argumentos Cuando quieren enganchar en sus funcionalidades personalizadas..
Al diseñar las ubicaciones de los ganchos de acción personalizados de su tema, no olvide que no tiene mucho sentido incluir enganches de temas personalizados en los mismos lugares donde el propio WordPress Core tiene sus propios ganchos.