Seule la première « fonction if » dérive de la dernière version d’une page .js (wordpress) ?
Ce qui suit est utilisé pour charger la dernière version d’une page .js sur une page wordpress. Le premier ensemble (assets1) fonctionne bien. Cependant, la deuxième fonction ne parvient pas à charger la dernière version de la page js, uniquement le téléchargement d’origine. Je voudrais que les deux fonctions dérivent la dernière version de la page .js, que dois-je changer pour ce faire ?
function load_js_assets1() {
if( is_page( 'Example Page 1' ) ) {
$datetime = new DateTime('now');
$revision = $datetime->format("YmdHis");
wp_enqueue_script('example1.js?'.$revision, 'http://website.com/example1.js', array('jquery'), '', false);
}
}
add_action('wp_enqueue_scripts', 'load_js_assets1');
function load_js_assets2() {
if( is_page( 'Example Page 2' ) ) {
$datetime = new DateTime('now');
$revision = $datetime->format("YmdHis");
wp_enqueue_script('example2.js'.$revision, 'http://website.com/example2.js', array('jquery'), '', false);
}
}
Solution n°1 trouvée
Il vous manque le second add_action
, ce qui peut être la raison pour laquelle le second script ne se charge pas correctement. Essayez ce code, qui utilise deux fonctions et add_action
si vous êtes sur les pages que vous voulez qu’elles soient utilisées :
function load_js_assets1() {
$datetime = new DateTime('now');
$revision = $datetime->format("YmdHis");
wp_enqueue_script('example1.js?'.$revision, 'http://website.com/example1.js', array('jquery'), '', false);
}
function load_js_assets2() {
$datetime = new DateTime('now');
$revision = $datetime->format("YmdHis");
wp_enqueue_script('example2.js'.$revision, 'http://website.com/example2.js', array('jquery'), '', false);
}
if( is_page( 'Example Page 1' ) ) {
add_action('wp_enqueue_scripts', 'load_js_assets1');
}
if( is_page( 'Example Page 2' ) ) {
add_action('wp_enqueue_scripts', 'load_js_assets2');
}
Solution n°2 trouvée
Quelques choses.
-
Vous pouvez ajouter la version/révision au hook de mise en file d’attente lui-même, de sorte que vous n’avez pas à vous soucier de concaténer la version au nom de fichier et d’exclure accidentellement des caractères comme ‘?’. Le crochet le fait pour vous.
-
Il vous manque l’add_action sur la deuxième fonction.
-
Vous devez simplement combiner les deux instructions if dans la même fonction.
Essayez quelque chose comme ceci :
<?php
function load_js_assets() {
// Declare your revision variables once
$datetime = new DateTime('now');
$revision = $datetime->format("YmdHis");
// Test against first statement. If true enqueue the first script
if( is_page( 'Example Page 1' ) ) {
wp_enqueue_script('example1.js', 'http://website.com/example1.js', array('jquery'), $revision, false);
}
// Test against second statement. If true enqueue the second script
if( is_page( 'Example Page 2' ) ) {
wp_enqueue_script('example2.js', 'http://website.com/example2.js', array('jquery'), $revision, false);
}
// Do more if needed...
}
add_action('wp_enqueue_scripts', 'load_js_assets');
0 commentaire