web-dev-qa-db-fra.com

Comment charger un fichier javascript sur la page d'accueil dans Wordpress dans l'ordre?

J'utilise un plugin quicktags, qui ne se chargeait pas sur la page d'accueil, maintenant, mais le fait au mauvais endroit. Comment puis-je résoudre ça?

Je veux que le fichier quicktags.min.js soit chargé en premier, plutôt que les quicktags basic-comment ...

J'utilise ce script:

add_action( 'wp_enqueue_scripts', 'ron_scripts' );
function ron_scripts(){
   if(is_home()){
     wp_register_script( 'quicktags', '/wp-includes/js/quicktags.min.js?ver=3.5.1');
     wp_enqueue_script( 'quicktags' );
     wp_register_script( 'basic-comment-quicktags', '/wp-content/plugins/basic-comment-quicktags/quicktags.js' );
     wp_enqueue_script( 'basic-comment-quicktags' );
     } else {

    }
}

Que dois-je faire pour que cela fonctionne comme je le souhaite?

Edit: maintenant j'utilise:

function quicktags_script() {
    wp_register_script( 'quicktags-min', '/wp-includes/js/quicktags.min.js?ver=3.5.1');
    wp_enqueue_script( 'quicktags-min' );
wp_register_script( 'basic-comment-quicktags', '/wp-content/plugins/basic-comment-quicktags/quicktags.js' );
     wp_enqueue_script( 'basic-comment-quicktags' );
}

add_action( 'wp_enqueue_scripts', 'quicktags_script' );

....

Puis-je obtenir les balises de base de commentaires-commentaires sous tous les scripts?

Edit 2:

Si je change quicktags-min en quicktags, cela ne me donne pas l'erreur l10n et me l'affiche dans le code source de ma page. Cette fois, j'obtiens cette erreur: Permission denied to access property 'toString'

1
Johan

Dans votre functions.php: edit: Enregistrez d'abord le script de balises rapides sous un nom différent de celui déjà enregistré dans wp "quicktags", voir Codex

function quicktags_script() {
    wp_register_script( 'quicktags-min', '/wp-includes/js/quicktags.min.js?ver=3.5.1','','',true);
    wp_enqueue_script( 'quicktags-min' );
}

add_action( 'wp_enqueue_scripts', 'quicktags_script' );

Cela chargera le script pour toutes les pages de votre front-end. Pour le charger uniquement en première page:

function quicktags_script() {
    if(is_front_page()){
        wp_register_script( 'quicktags-min', '/wp-includes/js/quicktags.min.js?ver=3.5.1','','',true);
        wp_enqueue_script( 'quicktags-min' );
    }
}

add_action( 'wp_enqueue_scripts', 'quicktags_script' );

Ajoutez simplement le dernier paramètre $ in_footer pour wp_register_script à true (voir la réponse modifiée). Ou ajoutez 'quicktags-min' comme troisième paramètre de la fonction de registre basicktags

wp_register_script( 'basic-comment-quicktags', '/wp-content/plugins/basic-comment-quicktags/quicktags.js','quicktags-min' );

Cela va d'abord charger quicktags-min puis les basictags.

1
Tolea Bivol

Le troisième paramètre de wp_register_script est $deps--. wp_enqueue_script accepte également un paramètre $deps, en passant.

wp_register_script( $handle, $src, $deps, $ver, $in_footer );

$deps est un tableau de scripts dont dépend le script enregistré. Les dépendances chargent avant les scripts dont elles dépendent. WordPress jonglera pour vous si vous enregistrez correctement.

function quicktags_script() {
    wp_register_script( 
       'quicktags-min', 
       '/wp-includes/js/quicktags.min.js?ver=3.5.1'
    );

    wp_register_script( 
       'basic-comment-quicktags', 
       '/wp-content/plugins/basic-comment-quicktags/quicktags.js',
       array('quicktags-min')
    );

    wp_enqueue_script( 'basic-comment-quicktags' );
    wp_enqueue_script( 'quicktags-min' );
}

add_action( 'wp_enqueue_scripts', 'quicktags_script' );

C'est ce que votre question initiale sonnait comme vous le souhaitiez. Maintenant, vous avez réécrit en demandant comment obtenir des "balises de base de commentaire de commentaire sous tous les scripts". Pour ce faire, vous souhaiterez probablement mettre le script en file d'attente très tard avec une priorité sur le hook wp_enqueue_scripts. Vous pouvez enregistrer le script comme d'habitude et le mettre en file d'attente comme ceci:

function enqueue_bcquicktags() {
    wp_enqueue_script( 'basic-comment-quicktags' );
}
add_action( 'wp_enqueue_scripts', 'enqueue_bcquicktags', 1000 );

Vous voudrez peut-être aussi examiner le cinquième paramètre, $in_footer, qui chargera votre script dans le pied de page de la page. Sans cela, il devrait se charger en dernier dans le <head> de la page.

1
s_ha_dum