web-dev-qa-db-fra.com

jquery-ui-autocomplete n'est pas chargé avec wp_enqueue_script

quand je charge le script par défaut jquery-ui-autocomplete de wordpress via

wp_enqueue_script( 'jquery-ui-autocomplete', '', array( 'jquery-ui-widget', 'jquery-ui-position' ), '1.8.6' );

il est intégré et tout fonctionne correctement, à l'exception du message de notification gênant en mode débogage:

Remarque: wp_enqueue_script a été appelé de manière incorrecte. Les scripts et les styles ne doivent pas être enregistrés ou mis en file d'attente avant les scripts wp_enqueue_scripts, admin_enqueue_scripts ou init.

La solution est donc assez simple, emballez seulement l'appel wp_enqueue_script:

function add_scripts(){
  wp_enqueue_script( 'jquery-ui-autocomplete', '', array( 'jquery-ui-widget', 'jquery-ui-position' ), '1.8.6' ); //don't loads the autocomplete
  wp_enqueue_script( 'jquery-ui-autocomplete'); //same as above
}
add_action('wp_enqueue_scripts', 'add_scripts'); 

MAIS ces techniques n’intègrent pas le jquery-ui-autocomplete script, seul le message gênant disparaît. La seule façon dont le script jquery-ui-autocomplete est incorporé est sans l'envelopper ...

Où est mon erreur? Selon la documentation dans le codex, cela devrait être fait en encapsulant l'appel et en appelant simplement wp_enqueue_script( 'jquery-ui-autocomplete'); dedans.

BR, mybeck

1
mybecks

Êtes-vous sûr qu'il ne se charge pas? J'ai essayé ceci (en utilisant WordPress 3.6-beta1):

function add_scripts(){
  wp_enqueue_script( 'jquery-ui-autocomplete' );
}
add_action('wp_enqueue_scripts', 'add_scripts');

JQuery et jQuery ont migré dans l'en-tête:

<script type='text/javascript' src='http://localhost/wordpress/wp-includes/js/jquery/jquery.js?ver=1.9.1'></script> 
<script type='text/javascript' src='http://localhost/wordpress/wp-includes/js/jquery/jquery-migrate.js?ver=1.1.1'></script> 

Et jQuery UI en bas de page:

<script type='text/javascript' src='http://localhost/wordpress/wp-includes/js/jquery/ui/jquery.ui.core.min.js?ver=1.10.2'></script> 
<script type='text/javascript' src='http://localhost/wordpress/wp-includes/js/jquery/ui/jquery.ui.widget.min.js?ver=1.10.2'></script> 
<script type='text/javascript' src='http://localhost/wordpress/wp-includes/js/jquery/ui/jquery.ui.position.min.js?ver=1.10.2'></script> 
<script type='text/javascript' src='http://localhost/wordpress/wp-includes/js/jquery/ui/jquery.ui.menu.min.js?ver=1.10.2'></script> 
<script type='text/javascript' src='http://localhost/wordpress/wp-includes/js/jquery/ui/jquery.ui.autocomplete.min.js?ver=1.10.2'></script> 

Avez-vous wp_head() et wp_footer() dans votre thème? Avez-vous essayé avec un thème simple et tous les plugins désactivés?

2
RRikesh

Pour pouvoir utiliser l'action wp_enqueue_scripts et être appelé par WordPress, la fonction appel wp_head () doit être ajoutée avant la balise de fin et la fonction wp_foot (); doit être ajouté avant la balise de corps se terminant ou

0
pingle60