Только первая «функция if» извлекает последнюю версию страницы. js (wordpress)? - PullRequest
0 голосов
/ 14 июля 2020

Следующее используется для загрузки последней версии страницы. 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);
    }
}

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Соедините вещи.

  1. Вы можете добавить версию / ревизию к самой ловушке enqueue, так что вам не нужно беспокоиться о конкатенации версии с именем файла и случайном исключении символов лайк '?'. Хук сделает это за вас.

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

0 голосов
/ 14 июля 2020

Вам не хватает второго 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');
}
...