>

Orden de carga y hooks en WordPress

Fernan Díez     Colaboraciones    08/09/2017

Cuando queremos desarrollar un tema o un plugin para WordPress podemos encontrarnos con algunas dudas a la hora de añadir funcionalidades a través de nuestro código.

Para facilitarnos esa tarea, WordPress implementa un sistema sencillo para poder añadir nuevos contenidos y comportamientos a través de lo que se denominan hooks.

Orden de carga y hooks en WordPress

Hooks de WordPress

Los hooks de WordPress son lugares estratégicos dentro de WordPress que permiten añadir nuestro código propio con nuevos comportamientos o modificando el funcionamiento por defecto de WordPress.

Existen dos tipos diferentes de hooks como son las acciones y los filtros, que nos permitirán desplegar nuevas funcionalidades en WordPress a través de un plugin, un tema o un simple fragmento de código.

Acciones

Las acciones, permiten ejecutar funciones propias en un lugar específico dentro del proceso de ejecución de WordPress. añadir funcionalidades extra en un punto determinado del proceso de carga.

Filtros

Los filtros, por su parte, interceptan y modifican el comportamiento de la carga y los datos procesados, de este modo podemos añadir funciones que detienen la carga normal y modifican el contenido que se procesa.

Hooks de acciones y el proceso de carga

Una vez que nos hemos familiarizado con las herramientas que disponemos para intervenir en el ciclo de carga, es interesante realizar un repaso a este proceso de carga en sí mismo que analizaremos a través de los diferentes hooks de acciones o action hooks.

Como hemos visto los hooks de acciones o action hooks permiten ejecutar una funcioón en un punto específico del proceso de carga del core de WordPress, por lo que si conocemos estos hooks de acciones dominaremos el proceso de carga y los momentos en los que poder intervenir.

A continuación vamos a nombrar y explicar los action hooks más habituales en el proceso de carga de un sitio web creado con WordPress.

Se encuentran a su vez listados según el orden de carga para que podamos conocer en qué momento del proceso de ejecución del ciclo deberíamos añadir nuestras funciones.

muplugins_loaded

Es la carga de los must use plugins, es decir el nivel superior de plugins que podemos utilizar para darles prioridad.

registered_taxonomy

El momento en el que se registran las taxonomías como categorías o etiquetas.

registered_post_type

El momento en el que se registran los tipos de contenido de páginas o entradas.

plugins_loaded

Cuando se cargan los plugins activos en la instalación.

sanitize_comment_cookies

El momento en el que se sanitizan las cookies relativas a los comentarios.

setup_theme

Este hook comienza antes de la carga del tema activo.

load_textdomain

Carga el sistema de localización de idiomas.

after_setup_theme

Se utiliza generalmente para inicializar las opciones y ajustes del tema activo. Se utiliza para hacer llamadas inmediatamente después de la carga del archivo functions.php del tema.

auth_cookie_malformed

Lanzado si no existe una cookie de identificación correctamente creada.

auth_cookie_valid

Validación de las cookies de autenticación.

set_current_user

Carga de datos referentes al usuario autenticado.

init

Se utiliza generalmente para inicializar funciones por parte de los plugins. En este momento el usuario ya se encuentra identificado.

widgets_init

Utilizado generalmente para registrar nuevas barras laterales.

register_sidebar

Registro de barras laterales en las diferentes secciones de la web.

wp_register_sidebar_widget

Registro de cada uno de los widgets incluidos en las barras laterales.

wp_default_scripts

Lanzamiento de los scripts JS por defecto en el ciclo de carga.

wp_default_styles

Lanzamiento de los estilos CSS por defecto en el ciclo de carga.

admin_bar_init

Inicio de la barra de administración.

add_admin_bar_menus

Carga de los elementos de la barra de administración.

wp_loaded

Finalizada la carga completa de todos los elementos del núcleo de WordPress.

parse_request

Petición que afecta a la query principal de WordPress.

send_headers

Utilizado para añadir nuevas cabeceras a la salida de HTTP.

parse_query

Se ejecuta después de que las variables de la query principal han sido parseadas.

pre_get_posts

Se ejecuta después de que se crea el objeto de la variable de la consulta pero antes de ejecutar la propia consulta.

posts_selection

Utilizada principalmente para plugins de almacenamiento en caché.

wp

Cargado una vez que el entorno de WordPress se ha desplegado.

template_redirect

Se utiliza antes de determinar qué tipo de plantilla cargar.

get_header

Carga de la plantilla de la cabecera.

wp_enqueue_scripts

Se utiliza para encolar los scripts y estilos.

wp_head

Imprime los scripts y contenidos para la etiqueta head.

wp_print_styles

Se ejecuta antes de la impresión de estilos.

wp_print_scripts

Se ejecuta antes de la impresión de scripts.

get_search_form

Obtiene el formulario de búsqueda.

loop_start

Inicio del loop de WordPress.

the_post

Se inicia una vez que la información del post ha sido instalada.

get_sidebar

Consulta de la existencia de barras laterales o sidebar, definidas en la instalación.

dynamic_sidebar

Comienzo de la ejecución de elementos de la barra lateral.

get_search_form

Carga del formulario de búsqueda.

pre_get_comments

Array de referencia de los comentarios.

wp_meta

Utilizado como lanzador de contenido en la barra lateral.

get_footer

Inicio carga del contenido del pie de página.

get_sidebar

Carga de la barra lateral en el pie de página.

wp_footer

Carga de la base de WordPress para el pie de página.

wp_print_footer_scripts

Impresión de los scripts del pie de página.

admin_bar_menu

Array de referencia de la barra de administración

wp_before_admin_bar_render

Antes del renderizado de la barra de administración

wp_after_admin_bar_render

Después del renderizado de la barra de administración

shutdown

El momento en el cual la ejecución de PHP llega a su final.

Conclusiones

Para conocer todos los action hooks disponibles, siempre es recomendable tener a mano la documentación de WordPress, Codex, donde encontraremos la información completa y debidamente actualizada por la comunidad.

Encontraremos en esa sección, por lo tanto, más acciones que son ejecutadas a la hora de acceder al panel de administración, en la edición de contenido desde el administrador y otros procesos de WordPress de tipo avanzado.

Como conclusión podemos apuntar que conociendo los hooks de acciones de WordPress y sus referencias podremos ser capaces de trabajar con los momentos del proceso de carga que el propio core nos ofrece.

De ese modo tendremos gran parte de las herramientas necesarias para poder ampliar las funcionalidades de WordPress mediante fragmentos de código o plugins completos.


Sobre el autor

Fernan Díez   

Desarrollo Web WordPress & Marketing Online Publico 'WordPress Diario', un podcast sobre desarrollo web con WordPress y marketing online donde encontrarás consejos, herramientas y recomendaciones sobre todo lo que te puede interesar acerca del mundo del diseño web con WordPress, y el marketing digital.