Cum să adaugi cod imediat după tag-ul de deschidere body în cadrul Genesis

23 iul. 2012, 07:51:30
Vizualizări: 19.6K
Voturi: 4

Trebuie să adăugăm două fragmente de cod, unul imediat după tag-ul de deschidere body, iar celălalt chiar înainte de tag-ul de închidere body. Care este cea mai bună metodă pentru a face acest lucru? Am verificat funcția wp_enqueue_script, dar se pare că conținutul ar fi plasat în secțiunea head.

0
Toate răspunsurile la întrebare 5
0
13

Ai deschis măcar fișierul header.php și ai aruncat o privire? Vei vedea că genesis_before() este apelat imediat după tag-ul de deschidere <body> - urmărește iepurele alb și vei ajunge la:

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

Și la fel se întâmplă și în footer. Așadar...

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>';
}
23 iul. 2012 13:10:04
0

Puteți utiliza un plugin precum acesta pentru a afișa toate hook-urile Genesis: http://wordpress.org/plugins/genesis-visual-hook-guide/. Acest lucru vă va permite să găsiți rapid hook-ul potrivit pe care să-l modificați pentru a realiza acest lucru. Apoi modificați hook-ul în fișierul functions.php. De asemenea, puteți utiliza un plugin care vă permite să modificați cu ușurință hook-urile prin wp-admin: http://www.studiopress.com/plugins/simple-hooks

22 iun. 2013 11:58:29
0

Ești pe drumul cel bun. wp_enqueue_script acceptă un parametru numit in_footer care definește dacă scriptul tău ar trebui încărcat înainte de conținutul paginii sau la sfârșitul corpului paginii.

$in_footer: (boolean) (opțional) În mod normal, scripturile sunt plasate în secțiunea <head>. Dacă acest parametru este true, scriptul este plasat la baza <body>. Acest lucru necesită ca tema să aibă hook-ul wp_footer() în locul corespunzător. Reține că trebuie să încarci scriptul în coadă înainte ca wp_head să fie executat, chiar dacă va fi plasat în subsol. Implicit: false

Iată referința din codex: http://codex.wordpress.org/Function_Reference/wp_enqueue_script

23 iul. 2012 10:28:59
1
  1. După tag-ul de deschidere al corpului (<body>).

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

Action Hook-uri Structurale

genesis_before: Acest hook se execută imediat după tag-ul de deschidere (<body>) în sursa documentului.

  1. Înainte de tag-ul de închidere al corpului (</body>):

Puteți adăuga scriptul în Genesis > Setări Temă > Scripturi pentru Antet și Subsol și introduceți scriptul pe care doriți să-l afișați în wp_footer().

Hook-ul wp_footer() se execută imediat înainte de tag-ul de închidere (</body>) în sursa documentului.

13 sept. 2013 21:56:43
Comentarii

Brad, din câte știu, poți să renunți la verificarea current_filter(). În acest caz, dacă nu ai condiționale în funcția ta my_genesis_script(), verificarea dacă filtrul este atașat la hook-ul în care te-ai conectat este inutilă în interiorul funcției.

Bryan Willis Bryan Willis
17 ian. 2016 15:19:13
0

O actualizare pentru GenesisWP 3.3.1

Mergeți în 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>';

/**
 * Acțiune care se declanșează imediat după hook-ul `wp_body_open`.
 *
 * @since 1.0.0
 */
do_action( 'genesis_before' )
7 apr. 2020 20:33:15