只有第一个 "if function" 派生最新版本的 .js 页面 (wordpress)?

Only the first "if function" derives latest version of a .js page (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);
    }
}

您缺少第二个 add_action,这可能是第二个脚本未正确加载的原因。试试这个代码,它使用两个函数和 add_action 如果你在你想要使用它们的页面上:

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');
}

两件事。

  1. 您可以将 version/revision 添加到入队挂钩本身,这样您就不必担心将版本连接到文件名并意外排除诸如“?”之类的字符。挂钩会为您做到这一点。

  2. 您在第二个函数中缺少 add_action。

  3. 您应该将两个 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');