web-dev-qa-db-fra.com

utiliser wp_enqueue_script pour attacher jquery-ui

J'essaie de charger jquery-ui à l'aide de wp_enqueue_script. Je peux vérifier que jQuery est chargé. jquery-ui est enregistré en sortie de var_dump (wp_script_is ('jquery-ui-tabs', 'registered')); est bool (true), ce qui indique qu'il est enregistré mais qu'il n'est pas inclus dans la page.

J'utilise WordPress version 3.3.1

Qu'est-ce qui ne va pas?

J'attache le fragment relavant de functions.php de mon thème.

<?php
function my_scripts_method() {
  wp_register_script('jquery');
  wp_register_script('jquery-ui-core');
  wp_register_script('jquery-ui-tabs');
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
?>
1
viyyer

Voici une autre façon de charger un script populaire comme jquery-ui (en utilisant google api)

<?php  
// first, check to see if jquery-ui is already loaded 
if( !wp_script_is('jquery-ui') ) { 
        // you don't have to use googleapi's, but I think it helps. It saves the user's browser from loading the same script again if it has already been loade>
    wp_enqueue_script( 'jquery-ui' , 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js' );
}   
?>  

* Si vous rencontrez toujours des problèmes, essayez d'utiliser le chemin complet du répertoire "siteroot", qui correspond généralement au répertoire dans lequel vous trouverez le dossier wp-content. Donc, pour charger jquery-ui localement à partir du dossier de votre thème s'il ne se connecte pas, essayez quelque chose comme:

    <?php  
// first, check to see if jquery-ui is already loaded 
if( !wp_script_is('jquery-ui') ) { 
    wp_enqueue_script( 'jquery-ui' , '/home/<myusername>/<mysite.com>/wp-content/themes/<mycustomthemename>/js/jquery-ui.min.js' );
}   
?>  

Cela ne fonctionne que si vous avez le fichier dans ce dossier et dans un dossier js que vous avez créé dans le thème. Ceci est déconseillé si vous devez modifier des sites vers une autre URL - mais vous devrez simplement mettre à jour le dossier si vous le faites.

1
amatusko

Je pense que vous recherchez wp_enqueue_script, et non wp_register_script.

Si le script vient avec WordPress

 wp_enqueue_script( 'jquery-ui' );
3
Shane

jQuery et jQuery-ui sont déjà enregistrés auprès de WordPress. Vous devez les mettre en file d'attente pour les charger sur la page. Mais vous utilisez ' wp_register_script () ' au lieu de ' wp_enqueue_script () ' dans votre fonction ' my_scripts_method () '.

Veuillez utiliser le code ci-dessous:

function my_scripts_method() {
  wp_enqueue_script('jquery');
  wp_enqueue_script('jquery-ui-core');
  wp_enqueue_script('jquery-ui-tabs');
}
add_action('wp_enqueue_scripts', 'my_scripts_method'); 

Remarque: vous souhaiterez peut-être les charger de manière conditionnelle à l'aide de ' wp_script_is () '. Exemple:

if( !wp_script_is('jquery-ui-tabs') ) {     
  wp_enqueue_script('jquery-ui-tabs');
}
0

Vous devez enregistrer de nouveaux scripts avec la méthode suivante:

wp_register_script('jquery-ui', get_template_directory_uri().'/js/jquery-ui.js');

Actuellement, vous indiquez à WordPress un nouveau script sans source. Vous devez également créer un lien vers votre source.

De plus, après avoir enregistré le script, pour pouvoir l'utiliser dans votre thème, vous devez le mettre en file d'attente:

wp_enqueue_script('jquery-ui');

Faites cela après les lignes wp_register.

0
Asko