web-dev-qa-db-fra.com

Wordpress Enqueue uniquement pour la page d'accueil, functions.php, wp-framework

Je voudrais remplacer mon:

    if(is_home())
    {
        wp_enqueue_script( 'homestuff', get_theme_part( THEME_JS . '/home.js' ), array( 'jquery' ), null, true );
        wp_enqueue_script( 'jquerycolor', get_theme_part( THEME_JS . '/jquery.color.js' ), array( 'jquery' ), null, true );
    };

Qui est actuellement dans header.php, en le mettant dans un fichier functions.php à la place. Essayer de tout ranger sur le site d'un client tentaculaire. J'utilise wp-framework et l'idéal serait de l'insérer dans la fonction enqueue_assets de la classe parent_theme principale. Bien que ce ne soit pas vraiment un problème de wp-framework, j'aimerais simplement savoir:

Comment puis-je obtenir que is_home () travaille à partir d'un fichier de fonctions? Existe-t-il une alternative utilisant des globals dont je devrais avoir connaissance?

4
mjjwatson

Premièrement, si vous souhaitez cibler la page d'accueil du site, vous devez utiliser is_front_page(). La condition is_home() renvoie true lorsque le index des articles de blog est affiché, qu'il soit ou non placé sur la page d'accueil du site.

Deuxièmement, vous devez associer votre fonction à un hook approprié, qui apparaît dans ce cas comme étant wp_enqueue_scripts.

(Également: qu'est-ce que get_theme_part()? Est-ce une fonction personnalisée dans WP Framework?)

Par exemple, vous pouvez le faire dans functions.php:

function mytheme_enqueue_front_page_scripts() {
    if( is_front_page() )
    {
        wp_enqueue_script( 'homestuff', get_theme_part( THEME_JS . '/home.js' ), array( 'jquery' ), null, true );
        wp_enqueue_script( 'jquerycolor', get_theme_part( THEME_JS . '/jquery.color.js' ), array( 'jquery' ), null, true );
    }
}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_front_page_scripts' );
16
Chip Bennett