Les solutions que j'ai vues sont du point de vue de l'ajout de fonctionnalités javascript à un thème. Cependant, le PO a demandé, spécifiquement, "Comment puis-je l'ajouter exactement pour un seul page WordPress?" Cela semble être la façon dont j'utilise javascript dans mon blog Wordpress, où les articles individuels peuvent avoir différents "widgets" alimentés par JavaScript. Par exemple, une publication peut permettre à l'utilisateur de modifier les variables (curseurs, cases à cocher, champs de saisie de texte) et de tracer ou de répertorier les résultats.
À partir de la perspective JavaScript:
- Écrivez vos fonctions JavaScript dans un fichier «.js» séparé
Ne pensez même pas à inclure du JavaScript significatif dans le code html de votre message: créez un ou plusieurs fichiers JavaScript avec votre code.
- Interfacez votre JavaScript avec le code HTML de votre article
Si votre widget JavaScript interagit avec des contrôles et des champs html, vous devrez comprendre comment interroger et définir ces éléments à partir de JavaScript, et également comment laisser les éléments de l'interface utilisateur appeler vos fonctions JavaScript. Voici quelques exemples; d'abord, à partir de JavaScript:
var val = document.getElementById(“AM_Freq_A_3”).value;
Et depuis html:
<input type="range" id="AM_Freq_A_3" class="freqSlider" min="0" max="1000" value="0" oninput='sliderChanged_AM_widget(this);'/>
- Utilisez jQuery pour appeler la fonction d'initialisation de votre widget JavaScript
Ajoutez ceci à votre fichier .js, en utilisant le nom de votre fonction qui configure et dessine votre widget JavaScript lorsque la page est prête pour cela:
jQuery(document).ready(function( $ ) {
your_init_function();
});
- Dans le code html de votre article, chargez les scripts nécessaires à votre article
Dans l'éditeur de code Wordpress, je spécifie généralement les scripts à la fin de l'article. Par exemple, j'ai un dossier de scripts dans mon répertoire principal. À l'intérieur, j'ai un répertoire d'utilitaires avec JavaScript commun que certains de mes messages peuvent partager - dans ce cas, une partie de ma propre fonction utilitaire mathématique et la bibliothèque de traçage flotr2. Je trouve plus pratique de regrouper le JavaScript spécifique à la publication dans un autre répertoire, avec des sous-répertoires basés sur la date au lieu d'utiliser le gestionnaire de médias, par exemple.
<script type="text/javascript" src="/scripts/utils/flotr2.min.js"></script>
<script type="text/javascript" src="/scripts/utils/math.min.js"></script>
<script type="text/javascript" src="/scripts/widgets/20161207/FreqRes.js"></script>
- Mettre jQuery en file d'attente
Wordpress enregistre jQuery, mais il n'est disponible que si vous dites à Wordpress que vous en avez besoin, en le mettant en file d'attente. Sinon, la commande jQuery échouera. De nombreuses sources vous indiquent comment ajouter cette commande à votre functions.php, mais supposent que vous connaissez d'autres détails importants.
Tout d'abord, c'est une mauvaise idée de modifier un thème - toute mise à jour future du thème effacera vos modifications. Créez un thème enfant. Voici comment:
https://developer.wordpress.org/themes/advanced-topics/child-themes/
Le fichier functions.php de l'enfant ne remplace pas le fichier du thème parent du même nom, il y ajoute. Le didacticiel sur les thèmes enfants suggère comment mettre en file d'attente le fichier style.css parent et enfant. Nous pouvons simplement ajouter une autre ligne à cette fonction pour également mettre en file d'attente jQuery. Voici mon fichier functions.php complet pour le thème enfant:
<?php
add_action( 'wp_enqueue_scripts', 'earlevel_scripts_enqueue' );
function earlevel_scripts_enqueue() {
// styles
$parent_style = 'parent-style';
wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style',
get_stylesheet_directory_uri() . '/style.css',
array( $parent_style ),
wp_get_theme()->get('Version')
);
// posts with js widgets need jquery
wp_enqueue_script('jquery');
}