Cómo añadir código justo debajo de la etiqueta body de apertura en el framework Genesis

23 jul 2012, 07:51:30
Vistas: 19.6K
Votos: 4

Necesitamos añadir dos fragmentos de código, uno justo debajo de la etiqueta de apertura body y otro justo antes de la etiqueta de cierre body. ¿Cuál es la mejor manera de hacer esto? Revisé wp_enqueue_script, pero parece que el contenido quedaría en la sección head.

0
Todas las respuestas a la pregunta 5
0
13

¿Acaso abriste el archivo header.php y le echaste un vistazo? Verás que se llama a genesis_before() justo después de la etiqueta de apertura <body> - sigue al conejo blanco y obtendrás:

function genesis_before() { do_action('genesis_before'); }

Y de manera similar para el pie de página. Así que...

add_action( 'genesis_before', 'soy_un_copiador_perezoso' );
add_action( 'genesis_after',  'soy_un_copiador_perezoso' );

function soy_un_copiador_perezoso() {
    if ( current_filter() == 'genesis_before' )
        echo '<script>party.start();</script>';
    else
        echo '<script>if ( cops.called() ) party.split();</script>';
}
23 jul 2012 13:10:04
0

Puedes utilizar un plugin como este para mostrar todos los hooks de Genesis: http://wordpress.org/plugins/genesis-visual-hook-guide/. Esto te permitirá encontrar rápidamente el hook correcto para modificar y lograr esto. Luego modifica el hook en el archivo de funciones. También puedes usar un plugin que te permita modificar fácilmente los hooks desde el wp-admin: http://www.studiopress.com/plugins/simple-hooks

22 jun 2013 11:58:29
0

Estabas en el camino correcto. wp_enqueue_script toma un parámetro llamado in_footer que define si tu script debe cargarse antes del contenido de la página o al final del cuerpo de la página.

$in_footer: (booleano) (opcional) Normalmente los scripts se colocan en la sección <head>. Si este parámetro es verdadero, el script se coloca al final del <body>. Esto requiere que el tema tenga el hook wp_footer() en el lugar adecuado. Ten en cuenta que debes encolar tu script antes de que se ejecute wp_head, incluso si se colocará en el pie de página. Por defecto: false

Aquí está la referencia en el codex: http://codex.wordpress.org/Function_Reference/wp_enqueue_script

23 jul 2012 10:28:59
1
  1. Después de la etiqueta de apertura del body.

    add_action( 'genesis_before', 'my_genesis_script' );
    
    function my_genesis_script() {
    
    if ( current_filter() == 'genesis_before' )
    
    echo '<script>parties.over();</script>';
    
    }
    

Ganchos de acción estructurales

genesis_before: Este gancho se ejecuta inmediatamente después de la etiqueta de apertura en el código fuente del documento.

  1. Antes de la etiqueta de cierre del body:

Puedes agregar el script en Genesis > Configuración del Tema > Scripts de cabecera y pie de página e ingresar tu script que deseas que se muestre en wp_footer().

El gancho wp_footer() se ejecuta inmediatamente antes de la etiqueta de cierre en el código fuente del documento.

13 sept 2013 21:56:43
Comentarios

Por lo que sé, Brad, puedes eliminar la verificación de current_filter(). En este caso, a menos que tengas condicionales dentro de tu función my_genesis_script(), verificar si el filtro está adjunto al hook al que te estás enganchando es innecesario dentro de la función.

Bryan Willis Bryan Willis
17 ene 2016 15:19:13
0

Una actualización para GenesisWP 3.3.1

Ir a header.php

?>
</head>
<?php
genesis_markup(
    [
        'open'    => '<body %s>',
        'context' => 'body',
    ]
);

if ( function_exists( 'wp_body_open' ) ) {
    wp_body_open();
}

echo '<script>parties.over();</script>';

/**
 * Se ejecuta inmediatamente después del hook 'wp_body_open'.
 *
 * @since 1.0.0
 */
do_action( 'genesis_before' )
7 abr 2020 20:33:15