web-dev-qa-db-fra.com

Mise à jour: Je ne peux pas mettre en file d'attente les scripts principaux. La maçonnerie ne se charge pas avec le descripteur de mise en file d'attente, Wordpress 3.6.

J'essaie de charger de la maçonnerie mais je n'ai pas de chance, j'ai réussi à la charger manuellement, mais je me suis rendu compte que c'était inclus dans le noyau WordPress, alors j'ai pensé que c'était pratique.

Je l'ai en file d'attente '(je déteste vraiment ce mot) comme ceci:

function lart_front_end_scripts() {
            if (is_admin()) return;
            wp_enqueue_script('jquery', '1.10.2' );
            wp_enqueue_script('jquery-masonry', array('jquery'));
        }//End add_scripts

add_action('wp_print_scripts', array(&$this,'lart_front_end_scripts'));

Autres jQuery est chargé comme d'habitude, mais je continue à obtenir "maçonnerie n'a pas de méthode" dans la console et il est clairement pas chargé en raison de son absence dans la console de scripts réseau.

Aide très appréciée.

Edit: j'ai mis à jour mon code pour utiliser enqueue_script au lieu de print_script.

function masonry() {
    wp_enqueue_script('jquery-masonry');
}//End add_scripts

add_action('wp_enqueue_scripts', array(&$this, 'masonry'));

Toujours pas de dés.

1
UzumakiDev

D'accord, j'ai donc fait de Underscore and Masonry une dépendance d'un autre script, puis cela a fonctionné.

J'ai arrêté d'essayer de mettre en file d'attente les scripts d'action principaux et de le définir comme dépendance du script qui en avait besoin.

Maintenant, je ne suis pas tout à fait sûr que ce soit ce qui est supposé fonctionner. Je pensais que vous deviez toujours mettre en file d'attente une action pour ajouter le script avant de pouvoir le définir comme dépendance. L'avantage des scripts principaux était que vous n'aviez pas pour l'enregistrer.

Donc, sans mettre en file d'attente, ajouter une action '

wp_enqueue_script('homeJS', get_template_directory_uri() . '/js/home.js', array('jquery','underscore','jquery-masonry') );

Maintenant, tous mes scripts requis fonctionnent.

Pour clarifier, seul homeJS est en file d'attente avec:

function enqueue_script(){ if(is_admin()) return; wp_enqueue_script()...... }

Jquery, Maçonnerie et autres scripts principaux n'ont pas été mis en file d'attente de cette façon.

2
UzumakiDev

La maçonnerie est fournie avec et déjà enregistrée par WordPress.

Tout ce que vous avez à faire est de le mettre en file d'attente:

function lart_front_end_scripts() {
    wp_enqueue_script('jquery-masonry');
} // function lart_front_end_scripts
add_action('wp_enqueue_scripts', array($this, 'lart_front_end_scripts'));
0
tfrommen

wp_print_scripts ne doit pas être utilisé pour mettre en file d'attente des styles ou des scripts sur la page d'accueil. Utilisez plutôt wp_enqueue_scripts.

Il suffit d'utiliser wp_enqueue_scripts :

add_action( 'wp_enqueue_scripts', 'myScripts');
function myScripts (){
    wp_enqueue_script('jquery', '1.10.2' );
    wp_enqueue_script('jquery-masonry', array('jquery'));
}
0
P-S