javascript - 只有第一个“if 函数”派生了最新版本的 .js 页面(wordpress)?
问题描述
以下用于将 .js 页面的最新版本加载到 wordpress 页面上。第一组(assets1)工作正常。但是第二个函数加载最新版本的js页面失败,只能上传原版。我希望这两个函数都派生最新版本的 .js 页面,我需要更改哪些内容?
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);
}
}
解决方案
夫妇的事情。
您可以将版本/修订添加到 enqueue 挂钩本身,因此您不必担心将版本连接到文件名并意外排除诸如“?”之类的字符。钩子为你做到了。
您缺少第二个函数的 add_action 。
您应该将两个 if 语句组合到同一个函数中。
尝试这样的事情:
<?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');
推荐阅读
- java - java中未排序数组列表中的最小元素
- sql - 如何计算货件的总行数
- android - SimpleDateFormat 在 Android Kitkat 中不起作用
- javascript - 如何使用javascript在点击时更新对象值
- actions-on-google - 在 Google Action 中“跨对话”存储数据
- tfs - ##[错误]错误:超出 GC 开销限制 - TFS 构建中的 SonarQube
- fish - 如何用 ] 替换文档中的最后一个字符?
- python - 将从 REST API 返回的响应转换为 CSV
- vb.net - 使 VB.Net 表单不可见时停止屏幕闪烁
- jenkins - 如何在 Jenkins 并行管道中使用 allure?