web-dev-qa-db-fra.com

Meilleur endroit pour wp_register_script () et wp_register_style ()

J'ai besoin de mettre en file d'attente plusieurs scripts et styles dans mon plugin. Cependant, je n'aime pas l'idée d'appeler wp_register_script() et wp_register_style() chaque fois que je dois appeler wp_enqueue_script() et wp_enqueue_style(). Je pense que c'est une bonne idée d'enregistrer les scripts et les styles une fois, puis de les appeler autant que nécessaire.

Ma question est donc la suivante: quelle est la meilleure pratique pour utiliser un crochet d’action pour appeler wp_register_script() et wp_register_style() afin de permettre une inscription unique? Et de quel crochet d'action s'agit-il?

Merci.

1
Greeso

Les scripts et les styles peuvent être enregistrés sur le hook wp_loaded, puis mis en file d'attente ultérieurement avec wp_enqueue_scripts.

Une fois que les scripts et les styles ont été enregistrés, ils peuvent être mis en file d'attente ultérieurement à l'aide des poignées avec lesquelles ils ont été initialement enregistrés.

// Register scripts/styles. They can be optionally enqueued later on.
add_action( 'wp_loaded', 'wpse_register_scripts' );
function wpse_register_scripts() {
    wp_register_script( 'something-js', get_template_directory_uri() . '/js/something.js', array( 'jquery' ), true );
    wp_register_script( 'something-else-js', get_template_directory_uri() . '/js/something-else.js', array(), true );
    wp_register_script( 'another-something-else-js', get_template_directory_uri() . '/js/another-something-else.js', array(), true );
}

// Enqueue scripts/styles.
add_action( 'wp_enqueue_scripts', 'wpse_enqueue_scripts' );
function wpse_enqueue_scripts() {
    // Load everywhere.
    wp_enqueue_script( 'something-js' );

    // Only enqueue scripts/styles on static front page.
    if ( is_front_page() ) {
        wp_enqueue_script( 'something-else-js' );
    }

    // Only enqueue scripts/styles when the full-width.php template is used.
    if ( is_page_template( 'full-width.php' ) ) {
        wp_enqueue_script( 'another-something-else-js' );
    }
}
2
Dave Romsey