Come aggiungere codice subito dopo il tag body aperto nel framework Genesis
Dobbiamo aggiungere due frammenti di codice, uno subito dopo il tag body di apertura e l'altro subito prima del tag body di chiusura. Qual è il modo migliore per farlo? Ho esaminato wp_enqueue_script, ma sembra che il contenuto verrebbe inserito nella sezione head.

Hai mai aperto il file header.php
e dato un'occhiata? Vedrai che genesis_before()
viene chiamato subito dopo il tag di apertura <body>
- segui il coniglio bianco e otterrai:
function genesis_before() { do_action('genesis_before'); }
E allo stesso modo per il footer. Quindi...
add_action( 'genesis_before', 'im_a_lazy_copy_paster' );
add_action( 'genesis_after', 'im_a_lazy_copy_paster' );
function im_a_lazy_copy_paster() {
if ( current_filter() == 'genesis_before' )
echo '<script>party.start();</script>';
else
echo '<script>if ( cops.called() ) party.split();</script>';
}

Puoi utilizzare un plugin come questo per visualizzare tutti gli hook di Genesis: http://wordpress.org/plugins/genesis-visual-hook-guide/. Questo ti permetterà di trovare rapidamente l'hook giusto da modificare per ottenere questo risultato. Poi modifica l'hook nel file functions. Puoi anche usare un plugin che ti consente di modificare facilmente gli hook tramite wp-admin: http://www.studiopress.com/plugins/simple-hooks

Eri sulla strada giusta. wp_enqueue_script
accetta un parametro chiamato in_footer che definisce se il tuo script deve essere caricato prima del contenuto della pagina o alla fine del corpo della pagina.
$in_footer: (booleano) (opzionale) Normalmente gli script sono posizionati nella sezione
<head>
. Se questo parametro è true lo script viene posizionato in fondo al<body>
. Questo richiede che il tema abbia l'hookwp_footer()
nel punto appropriato. Nota che devi accodare il tuo script prima chewp_head
venga eseguito, anche se sarà posizionato nel footer. Default:false
Ecco il riferimento sul codex: http://codex.wordpress.org/Function_Reference/wp_enqueue_script

Dopo il tag di apertura del body.
add_action( 'genesis_before', 'my_genesis_script' ); function my_genesis_script() { if ( current_filter() == 'genesis_before' ) echo '<script>parties.over();</script>'; }
Hook Strutturali di Azione
genesis_before: Questo hook viene eseguito subito dopo il tag di apertura nel sorgente del documento.
- Prima del tag di chiusura del body:
Puoi aggiungere lo script in Genesis > Impostazioni Tema > Scripts Header e Footer e inserire lo script che vuoi venga restituito in wp_footer().
L'hook wp_footer() viene eseguito subito prima del tag di chiusura nel sorgente del documento.

Brad, per quanto ne so, puoi eliminare il controllo current_filter()
. In questo caso, a meno che tu non abbia condizionali all'interno della tua funzione my_genesis_script()
, verificare se il filtro è collegato all'hook a cui stai agganciando è superfluo all'interno della funzione.

Un aggiornamento per GenesisWP 3.3.1
Vai su 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>';
/**
* Azione che viene eseguita immediatamente dopo l'hook `wp_body_open`.
*
* @since 1.0.0
*/
do_action( 'genesis_before' )
