web-dev-qa-db-fra.com

Mettre en file d'attente le script js au pied de page

Je dois exécuter wp_enqueue sur des fichiers javascript après que le DOM a été rempli car je dois cibler un div.

MODIFIER

J'essaie d'ajouter les trois scripts suivants:

wp_enqueue_script('react_js', '/scripts/react.min.js' );
wp_enqueue_script('startReact_js', '/scripts/test.js', array('react_js'), '', true);
wp_enqueue_script('app_js', '/scripts//App.js', array('startReact_js'), '', true);

Le premier chargera le code source de la réaction, le second script créera un div sur la page pour le rendu du composant réactif le plus parent, et le dernier script chargera le composant réactif le plus parent dans ledit div.

J'ai besoin de charger la page avant d'exécuter le dernier script b/c React nécessite un élément DOM à restituer en MAIS je ne peux pas comprendre comment charger le script dans le pied de page.

Je peux réussir à ajouter le script à l'en-tête. J'ai lu qu'il existe un paramètre $ in_footer. Chaque fois que j'essaie d'ajouter mon javascript au pied de page à l'aide du paramètre $ in_footer, il disparaît entièrement du DOM. Des pensées?

@ Blaine J'ai essayé d'ajouter les scripts de mise en file d'attente à mon functions.php selon votre exemple, mais j'ai l'écran blanc de la mort.

function addScriptsForEducatePage(){
    if(is_page(5274)){
        wp_enqueue_script('react_js', '/scripts/react.min.js' );
        wp_enqueue_script('startReact_js', '/scripts/pages/test.js', array('react_js'), '', true);
        wp_enqueue_script('app_js', '/scripts/pages/build/App.js', array('startReact_js'), '', true );
    }
    return;
}
add_action('wp_enqueue_scripts', 'addScriptsForEducatePage')

Des pensées?

1
Jake.JS

Avez-vous consulté wp_enqueue_script dans le codex WordPress? Vous devrez probablement ajouter ceci à functions.php dans le répertoire de votre thème.

De plus, où mettez-vous en file d'attente la dépendance startapp_js?

function prefix_enqueue_scripts() {
    wp_enqueue_script( 'startapp-js', get_template_directory_uri() . '/scripts/Startapp.js', array(), '', true ); 
    wp_enqueue_script( 'app-js', get_template_directory_uri() . '/scripts/App.js', array( 'startapp-js' ), '', true );
}
add_action( 'wp_enqueue_scripts', 'prefix_enqueue_scripts' );
1
Blaine

J? ai compris! Le paramètre de pied de page ne fonctionnait pas car je n'avais pas de <?php wp_footer(); ?> au bas de la page. Nous utilisions le footer <?php get_footer(); ?> qui fonctionne apparemment différemment. J'ai eu la réponse de l'article suivant Impossible de mettre en file d'attente les scripts dans le pied de page? .

J'ai été capable de conserver les scripts de mise en file d'attente dans la page php d'origine, il n'était donc pas nécessaire de le mettre dans functions.php bien que je sois sûr que cela fonctionnerait.

Un grand merci à tous ceux qui ont aidé!

0
Jake.JS