WordPress : agregar código con Hooks
Los Hooks permite inyectar codigo personalizado a WordPress sin modificar los archivos que vienen por defecto.
Existen varios sitios donde podemos ver los HOOKS que tiene disponible WordPress pero el mas conocido es www.hookr.io
Y tenemos Hook de 2 tipos:
Actions Hooks
Actions Hook que nos permite ejecutar funciones.
Si quieres ver todos los action hooks que existen, aprender a utilizarlos y saber en qué orden cargan, te recomiendo que visites la documentación oficial de WordPress sobre Action Hooks.
add_action( string $nombre_accion, callable $nombre_tu_funcion, int $prioridad, int $numero_parametros=1);
- $nombre_acción (requerido): El nombre de la acción a la que se va a enganchar la función que añadas en $nombre_funcion.
- $nombre_funcion (requerido): El nombre de la función que creaste para utilizar con este action hook.
- $prioridad (opcional): Se especifica el orden en el que se ejecutan las funciones que están asociadas a ese gancho. Su valor por defecto es 10. Cuanto más pequeño es el número, antes se ejecuta esa función. Si el valor es igual entre dos funciones, se ejecutará antes la que se haya agregado primero al action hook.
- $numero_parametros (opcional): Un número que indica la cantidad de parámetros que vas a pasar a la función. Por defecto, es 1.
Filter Hooks
Ejecutar funciones que reciben un parámetro,modifica el parámetro y luego lo retorna.
add_filter($tag,$funcion);
Por jemplo usaremos un Hook de contenido vamos a menú core y buscamos the_content
Ejemplos Actions Hook:
Entramos a la pagina web www.hookr.io
y vamos al menu Core y selecionamos menu Actions aqui buscamos wp_head
a)
wp_head
--> Nos permite ingresar codigo dentro de las etiquetas <head></head>.
Aqui nos indica como usar este Hook:
// define the wp_head callback
function action_wp_head( ) {
// make action magic happen here...
};
// add the action
add_action( 'wp_head', 'action_wp_head', 10, 0 );
Ahora usamos el plugin de Snippets para agregar el codigo:
// el nombre de funcion puede cambiar por ejemplo
// action_wp_head cambiaremos por action_wp_head_meta
function action_wp_head_meta( ) {
echo "<meta name='prueba' content='prueba' />";
};
// add the action
add_action( 'wp_head', 'action_wp_head_meta', 10, 0 );
b) get_header
= Se activa antes de que se cargue el archivo de plantilla de encabezado es decir antes del Head.
Este codigo HOOKS lo agregamos en un snippets
con la función do_shortcode agregamos un shortcode y con el HOOKS get_header
lo agregamos antes de la cabecera <head>:
// define the get_header callback
function action_get_header( $name ) {
echo do_shortcode('[smartslider3 slider="2"]');
};
// add the action
add_action( 'get_header', 'action_get_header', 10, 1 );
Ejemplos Filter Hook:
Como ejemplo vamos a rrabajar con un Hook de contenido que modifica el contenido de las entradas.
Entramos a la pagina web www.hookr.io
y vamos al menu Core y selecionamos menu Filters aqui buscamos the_content
The following example is for adding a hook callback.
// define the the_content callback
function filter_the_content( $post_post_content ) {
// make filter magic happen here...
return $post_post_content;
};
// add the filter
add_filter( 'the_content', 'filter_the_content', 10, 1 );
Ahora usamos el plugin de Snippets para agregar el codigo:
// define the the_content callback
function filter_the_content( $post_post_content ) {
// $post_post_content =Nos decuelve todo el contenido
// estamos concatenando el texto esto ira al final de todo el contenido
return $post_post_content ."<br/> Esto irá al final de todo el contenido....";
};
// add the filter
add_filter( 'the_content', 'filter_the_content', 10, 1 );
Resultado final en las entradas de nuestra web: