• Saltar a la navegación principal
  • Saltar al contenido principal

Dani Sánchez - Gestionatuweb

Desarrollador web freelance

  • Quién soy
  • ¿Eres agencia?
  • WordPress
    • Mantenimiento WordPress
    • Desarrollo WordPress
    • Soporte técnico WordPress
  • Cursos
  • Blog
  • Portfolio
  • Solicita Presupuesto

Hooks de Genesis Framework (init, header y framework) – Parte 1

El 31 de diciembre de 2020 por dani Deja un comentario

Aviso: Esta entrada tiene 2 o más años, es posible que el método difiera ligeramente, las capturas de pantalla no se correspondan con la versión actual o que la herramienta/complemento ya no esté disponible.
Advertencia: Esta entrada contiene códigos o snippets que podrían no funcionar correctamente en tu instalación de WordPress, o podrían ser incompatibles con tu theme o plugins activos. Úsalos bajo tu responsabilidad, preferiblemente en un entorno de desarrollo y haz siempre copias de tus archivos antes de modificarlos.

Hooks del init.php

init.php es un fichero que se encuentra dentro del directorio principal de Genesis, concretamente en la ruta:

themes/genesis/lib/init.php

Es el primer archivo que se carga cuando ejecutamos Genesis, por tanto las funciones que «enganchemos» aquí, serán las primeras que se carguen en el arranque de nuestra web.

Existen 4 hooks principales dentro de init.php:

  1. genesis_pre: Es el primer hook que puedes usar en Genesis, ninguna otra función de Genesis se carga antes de este.
  2. genesis_pre_framework: Este hook se ejecuta justo después de que Genesis declare las constantes del framework. Por lo que si tu función depende de alguna de estas constantes, deberías usarlo aquí en lugar de en genesis_pre.
  3. genesis_init: Se ejecuta después de que se cargue el framework, pero antes de que se cargue la configuración de los themes. Úsalo si tus funciones necesitan cargarse antes del setup del theme, pero dependen de alguna función del framework.
  4. genesis_setup: Se usa para definir la configuración del theme.

Si abrimos el archivo podemos localizarlos facilmente por los do_action()

do_action(‘genesis_pre’) es el hook o gancho, que al engancharlo con tu función:

add_action('genesis_pre', mi_funcion);

Sería el equivalente a escribir mi_funcion() en esa parte del archivo init.php, pero sin necesidad de tener que editar init.php. Recuerda que nunca debes modificar un archivo de Genesis directamente, pues todos los cambios se perderán al actualizar a una nueva versión.

Hooks del header.php

Existe 2 archivos header.php, uno situado en themes/genesis/header.php y otro situado en themes/genesis/lib/structure/header.php con hooks que conectan directamente con el primero.

Hooks que podemos encontrar genesis/header.php son:

  1. genesis_doctype: Ejecuta tus funciones justo depués del Doctype:
<!DOCTYPE html>
<html lang="es">
<head itemscope itemtype="https://schema.org/WebSite">
<meta charset="UTF-8" />

2. genesis_title: Se antepone a la etiqueta <title> por defecto del documento, por ejemplo:

add_action('genesis_title', 'mi_titulo');
function mi_titulo(){
	echo "<title>Mi título</title>";
}

Coloca «Mi título» por encima del título por defecto, aunque no lo sustituye:

En este caso prevalece el primer <title>

3. genesis_meta: Muy útil para añadir tus propias meta etiquetas. Normalmente las opciones de SEO de Genesis ya añaden las meta etiquetas necesarias, pero si necesitas alguna específica para un servicio o red social concreta, puedes añadirla manualmente aquí.

add_action('genesis_meta', 'meta_descripcion');
function meta_descripcion(){
    echo "<meta description='Mi meta descripción' />";
}

4. genesis_before: Añade tus funciones justo antes de la esctructura web de Genesis, por encima de la cabecera. Por ejemplo:

add_action('genesis_before', 'mi_encabezado');
function mi_encabezado(){
    echo '<h2>Mi encabezado</h2>';
}

5. genesis_before_header: Muy parecido a genesis_before, pero a continuación de algunos a links de Génesis. Se ubica justo antes de la etiqueta de apertura del header (<header>).

6. genesis_header: Engloba todo lo que hay dentro de la estructura <header></header> del documento. A este hook conectan otros hooks del lib/structure/header.php, como el genesis_site_title, genesis_site_description y genesis_header_right. Los veremos a continuación.

7. genesis_after_header: Se ubica justo a continuación de la etiqueta de cierre del header (</header>).

Hooks de genesis/lib/structure/header.php:

Como comentamos en el punto anterior, dentro de este header podemos encontrar hooks que conectan directamente con genesis_header, como pueden pueden ser:

  1. genesis_site_title: Ubicado en el título del sitio.
  2. genesis_site_description: Ubicado en la descripción del sitio.
  3. genesis_header_right: Ubicado en la cabecera derecha del sitio (donde suelen ir los menús principales en los child-themes de Genesis).
add_action('genesis_site_title', 'mi_site_title');
add_action('genesis_site_description', 'mi_site_description');
add_action('genesis_header_right', 'mi_header_right');

function mi_site_title(){
    echo "Mi site title";
}

function mi_site_description(){
    echo "Mi site description";
}

function mi_header_right(){
    echo "Mi header right";
}

add_action('genesis_after_header', 'mi_after_header');
function mi_after_header(){
	echo "Mi after header";
}

Hooks del framework.php

A partir de aquí vamos a ir viendo los considerados «hooks físicos«, pues cada uno de ellos tiene su propia ubicación dentro del tema, por lo que son bastante intuitivos de gestionar.

Dentro de framework.php encontramos 7 hooks:

  • genesis_before_content_sidebar_wrap
  • genesis_before_content
  • genesis_before_loop
  • genesis_loop
  • genesis_after_loop
  • genesis_after_content
  • genesis_after_content_sidebar_wrap

Entre ellos se encuentra problablemente el hook más importante de Genesis, el genesis_loop, que usaremos para la mayoría de tareas de programación que tengan que ver con la consulta y carga de contenidos.

framework.php se encuentra en la ruta genesis/lib/framework.php donde podemos ver los hooks mencionados.

  1. genesis_before_content_sidebar_wrap: Se ubica justo antes del div content-sidebar-wrap (fuera del contenedor principal de la entrada o página).
add_action('genesis_before_content_sidebar_wrap', 'mi_genesis_before_content_sidebar_wrap');
function mi_genesis_before_content_sidebar_wrap(){
	echo "<b>Este es el genesis_before_content_sidebar_wrap</b>";
}

2. genesis_before_content: Se ubica dentro del div content-sidebar-wrap justo antes del aside o barra lateral (si la hubiera):

add_action('genesis_before_content', 'mi_genesis_before_content');
function mi_genesis_before_content(){
	echo "<b>Este es el genesis_before_content</b>";
}

3. genesis_before_loop: Nos acercamos al loop de genesis, el momento en el que se carga el contenido de una entrada o página. Este hook se ubica justo antes.

add_action('genesis_before_loop', 'mi_genesis_before_loop');
function mi_genesis_before_loop(){
	echo "<b>Este es el genesis_before_loop</b>";
}

4. genesis_loop: Este hook es usado por el propio framework de Génesis para iniciar el loop general (listados de posts, mostrar el contenido de un post…). Dedicaremos un apartado a los hooks que podemos encontrar dentro del propio loop.

5. genesis_after_loop: No tiene misterio, se ubica justo después del loop, una vez que ha cargado todo el contenido (incluso la caja de comentarios de una entrada):

add_action('genesis_after_loop', 'mi_genesis_after_loop');
function mi_genesis_after_loop(){
	echo "<b>Este es el genesis_after_loop</b>";
}

6. genesis_after_content: Al contrario que su homónimo, este se ubica al final del content o sidebar si existiera.

add_action('genesis_after_content', 'mi_genesis_after_content');
function mi_genesis_after_content(){
	echo "<b>Este es el genesis_after_content</b>";
}

La ubicación puede ser un poco confusa dependiendo de cómo esté configurado el sidebar. Pero si observamos el código HTML, vemos cómo se ubica justo al final de la etiqueta aside del sidebar:

Archivado en: Genesis, Publicaciones, Tutoriales, WordPress Etiquetado como: genesis, wordpress

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la política de privacidad

Hosting recomendado

Raiola Networks

Autor

Dani Sánchez
Dani Sánchez
@danisanchez82

Entradas recientes

  • Optimizar el archivo de configuración de WordPress (wp-config.php)
  • ¿Qué plugins tengo instalados en mi web en 2022?
  • Tu alojamiento web no es compatible con la rotación de imágenes. [Solución]
  • Instalar LAMP en Manjaro (Linux, Apache, MySQL y PHP)
  • Instalar LAMP (Linux, Apache, MySQL y PHP) en Fedora 34

Comentarios recientes

  1. Armando en Instalar LAMP (Linux, Apache, MySQL y PHP) en Fedora 34
  2. Vito en Configurar en español los campos tipo fecha (date) en Ninja Forms
  3. Manel en Calcular rutas con OpenStreetMap partiendo de la geolocalización del usuario
  4. Leo en Modificar textos predefinidos de WordPress sin editar la traducción
  5. Alejo en Instalar LAMP en Manjaro (Linux, Apache, MySQL y PHP)

Categorías

  • Actualidad
  • Afiliación AliExpress
  • Agent Press Pro
  • Bettaso Web Restaurantes
  • Cursos
  • Destacado
  • Divi
  • Drupal
  • Elementor
  • Genesis
  • Iniciación a PHP
  • Joomla!
  • Linux
  • Publicaciones
  • Tutoriales
  • WooCommerce
  • WordPress

Divi 20% descuento

Hosting Recomendado

Raiola Networks
Banner

Sitios web corporativos, blogs y tiendas online cuidando hasta el mínimo detalle

Si deseas proponerme un proyecto web ponte en contacto conmigo.

Contacto

Gestionatuweb © 2022 · Desarrollado con Genesis · Acceder
Política de privacidad · Política de cookies

En Gestionatuweb.net utilizamos cookies técnicas para el correcto funcionamiento del sitio. Además, utilizamos cookies para obtener datos estadísticos sobre el uso de la web, con el fin de mejorar la experiencia de navegación y conocer qué contenidos son los más consultados. Otras cookies son usadas para servicios adicionales, como conexión con redes sociales, marketing o mostrar publicidad acorde a tus gustos. Puedes desactivar todas las cookies (excepto las técnicas) pulsando en Rechazar, o elegir qué cookies admites y cuales no en el botón de Preferencias. Más información sobre las cookies que utilizamos en nuestra: Política de cookies.

Gestor de cookies:  GDPR Cookie Compliance
Resumen de uso de cookies

En Gestionatuweb.net utilizamos cookies técnicas para el correcto funcionamiento del sitio. Además, utilizamos cookies para obtener datos estadísticos sobre el uso de la web, con el fin de mejorar la experiencia de navegación y conocer qué contenidos son los más consultados. Otras cookies son usadas para servicios adicionales, como conexión con redes sociales, marketing o mostrar publicidad acorde con tus intereses. Puedes desactivar todas las cookies (excepto las técnicas) pulsando en Rechazar, o elegir qué cookies admites y cuales no en el botón de Preferencias.

Cookies técnicas (necesarias)

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies. Estas cookies son:

  • moove_gdpr_popup: Comprueba si debe mostrar o no el aviso de cookies (si ya ha sido aceptado o rechazado no se vuelve a mostrar mientras persista esta cookie). Expira en 1 año.
  • cpnb_cookiesSettings: Comprueba qué categorías de cookies se aceptan o rechazan (por ejemplo, cookies analíticas, cookies de publicidad dirigida, etc.). Expira en 1 año.
  • _GRECAPTCHA: Esta web utiliza el servicio reCAPTCHA para fortalecer la seguridad en los formularios y evitar el envío masivo de SPAM. reCAPTCHA utiliza esta cookie necesaria para realizar su análisis de riesgo. Expira en 6 meses.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de analítica

Utilizamos Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares. Dejando estas cookies activas nos permite mejorar nuestra web.

  • _ga: Analítica de Google. Se usa para distinguir a los usuarios. Expira en 2 años.
  • _gid: Se usa para distinguir a los usuarios. Expira en 24 horas.
  • _gat: Se usa para limitar el porcentaje de solicitudes. Expira en 1 minuto.

¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!

Cookies de publicidad

Utilizamos Google Adsense para mostrar publicidad en los artículos del blog acordes a tus intereses. Esta publicidad nos ayuda al mantenimiento del sitio web y del tiempo dedicado a la redacción del blog.

  • _gads: Publicidad de Google Adsense. Proporciona la publicación de anuncios de interés para el usuario. Expira en 13 meses.

¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!

Política de cookies

Más información sobre nuestra política de cookies