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.
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.