Je sais que je peux ajouter un fichier de script au pied de page de wordpress qui nécessite jquery en utilisant ce code:
<?php
function my_scripts_method() {
// register your script location, dependencies and version
wp_register_script('custom_script',
get_template_directory_uri() . '/js/custom_script.js',
array('jquery'),
'1.0',
true);
// enqueue the script
wp_enqueue_script('custom_script');
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
?>
Mais que faire si je veux ajouter juste un extrait normal de jquery inline, pas un fichier. Comment cela peut-il être fait.
modifier
Je sais que je peux utiliser ce script pour ajouter quelque chose au pied de page:
<?php
function myscript() {
?>
<script type="text/javascript">
// This depends on jquery
</script>
<?php
}
add_action('wp_footer', 'myscript');
Mais comment spécifier le script utilisé nécessite l' exécution de jquery .
plugin-development
jquery
wp-enqueue-script
Saif Bechan
la source
la source
wp_register_script
etwp_enqueue_script
existe, mais vous pouvez vérifier en utilisant jquery lui-même.wp_enqueue_script
un fichier de script dans le pied de page, je veux ajouter un extrait dans le pied de page qui nécessite jquery. J'ai rétrogradé la réponse directement tirée du codex. J'ai lu le codex et je n'ai pas trouvé de réponse, c'est pourquoi je pose une question. Si vous me redirigez à nouveau vers le codex, je downvote.Réponses:
La façon la plus simple de le faire est en fait une combinaison des
wp_enqueue_script
actions de pied de page que Saif et v0idless ont déjà référencées. J'utilise fréquemment jQuery dans mes thèmes et plugins, mais je mets également tous les autres scripts dans le pied de page.La meilleure façon de mettre les choses en file d'attente serait la suivante:
Mais ce code coupé suppose que vous êtes celui qui met le script en file d'attente, c'est-à-dire que vous le faites dans votre propre plugin ou thème.
Pour le moment, il n'y a aucun moyen d'ajouter un script en ligne au pied de page WordPress et de le charger avec des dépendances. Mais il existe une alternative, si vous le souhaitez.
L'alternative
Lorsque WordPress fonctionne avec des scripts, il les charge en interne dans un objet pour en garder la trace. Il y a essentiellement 3 listes à l'intérieur de l'objet:
Lorsque vous enregistrez un script pour la première fois,
wp_register_scripts()
il est placé dans la liste enregistrée. Lorsque vouswp_enqueue_script()
le script, il est copié dans la liste des files d'attente. Une fois imprimé sur la page, il est ajouté à la liste des tâches terminées.Ainsi, plutôt que de mettre votre script de pied de page en file d'attente pour exiger jQuery, vous pouvez documenter qu'il doit utiliser jQuery et vérifier simplement par programme pour vous assurer que jQuery est chargé.
Cela permet
wp_script_is()
de vérifier où le script est répertorié.Vous pourriez peut- être utiliser ce même code pour forcer jQuery à se charger également dans le pied de page, mais je n'ai pas testé cela ... donc votre kilométrage peut varier.
la source
Depuis wordpress 4.5, vous pouvez ajouter un script en ligne par
wp_add_inline_script()
. Pour ajouter un extrait javascript au pied de page qui nécessite jQuery, ce code vous aidewp_add_inline_script avec wordpress jquery
la source
Utilisez l'
wp_footer
action comme ceci:la source
Je sais que OP veut spécifier une exigence sur jQuery, et les auteurs de WordPress auraient dû autoriser la mise en file d'attente des extraits de code à côté des fichiers de script, mais ils ne l'ont pas fait, donc je recommande de ne pas essayer de le forcer. Si vous ne voulez pas du tout gâcher la file d'attente ou son ordre, comme moi (parce que j'utilise d'autres plugins qui combinent et optimisent des scripts), alors la réponse est vraiment d'utiliser l'
wp_footer
action comme ceci:la source
Vous pouvez utiliser l'
wp_footer
action pour ce faire. Vérifiez le codex pour wp_footer .la source
in_footer
argumentwp_enqueue_script
? Lisez ceci: codex.wordpress.org/Function_Reference/wp_enqueue_script . Il vous indique comment l'utiliser avec l'wp_footer
action.