Question

J'utilise Starkers à la base de mon prochain thème WP sur et j'ai rencontré un petit problème, j'incluais ma propre version de jQuery dans le fichier header.php mais lors de l'inspection de mon site en utilisant Firebug j'ai remarqué jquery était étant téléchargé deux fois, je l'ai fait un peu de creuser et a remarqué que non seulement je compris le fichier, mais qu'il était donc la fonction wp_head().

En essayant de résoudre le problème, je remarque un commentaire dans le fichier d'en-tête, dont son origine est venu du thème Twenty Ten:

/* Always have wp_head() just before the closing </head>
 * tag of your theme, or you will break many plugins, which
 * generally use this hook to add elements to <head>, such 
 * as styles, scripts, and meta tags
 */

Alors, voici mon problème, je suis sous l'impression que le fichier jQuery doit être réglé avant tout autre fichier qui veut l'utiliser et que wp_head() devrait être la dernière chose dans l'élément <head>, je suis un peu confus maintenant Je me demande dois-je mettre wp_head() en haut de sorte que le fichier WP inclus jQuery sera utilisé pour tous mes plugins, même si elle dit ne pas le faire.

Je l'ai fait un commentaire sur la ligne jQuery dans la fonction wp_head() mais il est nécessaire pour la page d'administration donc je devais le remettre.

Je tiens aussi à utiliser (expérience au moins) avec l'utilisation de la version Google CDN de jQuery, mais ne veulent pas inclure deux fois!

J'espère que vous comprenez ce que je suis en train d'expliquer, des suggestions sur la façon dont je peux résoudre ce problème serait le plus apprécié. Je voudrais aussi apprécier des conseils sur la façon dont vous gérez vos fichiers JavaScript avec le fichier d'en-tête.

Merci!

Était-ce utile?

La solution

De la formulation de votre question, vous devez être ajouter des scripts en écrivant des balises <script> dans votre modèle. Ajoutez vos propres scripts via wp_enqueue_script() dans functions.php de votre modèle, un réglage approprié sur jQuery dépendances et wp_head() ajoutera les scripts pour vous.

function my_scripts() {
    wp_enqueue_script( 'my-sweet-script', get_bloginfo('template_directory') . '/script.js', array('jquery') );
}
add_action('template_redirect', 'my_scripts');

Voir la page codex pour plus d'informations.

Autres conseils

je suggère de jeter un oeil à 5 conseils pour l'utilisation de jQuery avec WordPress . Entre autres, il montre le code nécessaire pour charger jQuery de la bibliothèque de Google:

function my_init() {
    if (!is_admin()) {
        // comment out the next two lines to load the local copy of jQuery
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2');
        wp_enqueue_script('jquery');
    }
}
add_action('init', 'my_init');

Vous pouvez également consulter le plug-in Utiliser Google bibliothèques.

Bien que @tnorthcutt est exact que vous devez bien dequeue jquery natif WP si vous voulez charger votre propre, vous êtes certain de rencontrer des problèmes lorsque vous chargez une autre version jquery que le noyau WP. Les deux plugins de base et comptent sur ce être là. Donc, si vous ne mettez pas à jour votre thème avec le plus récent jquery tous les WP temps est mis à jour, votre site peut se briser.

Le code suivant vous assurer que votre thème toujours charge la version correcte de jquery, en examinant d'abord la version haut WP est l'utilisation et le chargement que l'un de Google:

$wp_jquery_version = $GLOBALS['wp_scripts']->registered['jquery-core']->ver;
$jquery_version = ( $wp_jquery_version == '' ) ? '1.8.3' : $wp_jquery_version; // fallback, just in case 
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/'. $jquery_version .'/jquery.min.js', $jquery_version, false );
wp_enqueue_script('jquery');
Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top