Как изменить версию .css в WordPress?

13

Как следует из названия, я не слишком уверен, как изменить версию файла .css в моей теме. На данный момент версия .css выглядит так:

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=4.6.1' type='text/css' media='all' />

Есть ли скрипт, который мне нужно запустить - где мне искать версию 4.6.2, как указано выше?

Генри
источник
Как вы получаете этот скрипт для печати?
Натан Пауэлл

Ответы:

18

Четвертый аргумент $verfor wp_enqueue_style()позволяет вам установить версию:

wp_enqueue_style( string $handle,
                  string $src = false,
                  array $deps = array(),
                  string|bool|null $ver = false,
                  string $media = 'all' );

Согласно документации:

$ ver (string | bool | null) (Необязательно) Строка, указывающая номер версии таблицы стилей, если он есть, который добавляется к URL-адресу в виде строки запроса в целях очистки кэша. Если для версии установлено значение false, автоматически добавляется номер версии, равный текущей установленной версии WordPress. Если установлено значение null, версия не добавляется. Значение по умолчанию: false

Дейв Ромси
источник
Спасибо за это - я думаю, что я спрашиваю, «как мне это сделать», то есть «как мне запустить этот скрипт для генерации новой версии»? Надеюсь, что это имеет смысл ...
Генри
Обновите ли вы свой вопрос с кодом, где wp_enqueue_style()он называется? WordPress автоматически обрабатывает версии, основываясь на пояснениях, $verопубликованных в моем ответе, поэтому я предполагаю, что для $ ver установлено значение false. Если вы хотите изменить его, измените аргумент $ ver на новую строку (я бы не использовал 4.6.2, так как это соглашение уже используется WordPress), но технически это будет работать.
Дэйв Ромси
1
Вы можете легко заменить что-нибудь там. Например, $ver = time();будет делать новую версию каждый раз, когда вы попадаете на страницу, и версия будет временем.
Натан Пауэлл
8

В основном wp_enqueue_style()функции используют тему внутри файла functions.php для добавления таблицы стилей в заголовок. Вот как узнать, делает ли ваша тема то же самое.

Откройте ваш wp-content/themes/YOUR_THEME_NAME/functions.phpфайл и найдите строку, которая добавляет таблицу стилей, например:

wp_enqueue_style('main_style',  get_stylesheet_directory_uri() . '/style.css');

Или как:

wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri() );

Вы можете искать идентификатор (кроме -cssчасти) ... если идентификатор: main_style-cssищите только main-styleв вашем файле functions.php, и вы, вероятно, должны найти строку кода, которую вы искали.

Теперь, когда вы нашли код и знаете, что ваша тема добавляет эту таблицу стилей с помощью wp_enqueue_style()файла functions.php. Вам необходимо обновить этот код для версии.

$style_ver = filemtime( get_stylesheet_directory() . '/style.css' );
wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', $style_ver );

Как вы можете видеть, этот код получает время последнего изменения файла style.css с помощью filemtime()функции PHP, а также преобразует время в метку времени с помощью time()функции PHP, чтобы все было чисто.

Если вы не хотите, чтобы версия динамически изменялась каждый раз, вы можете просто сделать это:

wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', '1.5' );

Это в значительной степени это. Мир!

Waqas Jawed
источник
Heads up: вы должны использовать get_stylesheet_directory()внутри, filemtime()так как он вернет системный путь.
Половина Crazed
3

Я не получил много от этих ответов, поэтому я думал, что напишу, что сработало для меня. Я знаю, что кодекс говорит:

$ ver (string | bool | null) (Необязательно) Строка, указывающая номер версии таблицы стилей, если он есть, который добавляется к URL-адресу в виде строки запроса для очистки кеша. Если для версии установлено значение false, автоматически добавляется номер версии, равный текущей установленной версии WordPress. Если установлено значение null, версия не добавляется. Значение по умолчанию: false

Но это очень загадочно, как это на самом деле работает. Я не мог получить номер версии wp_enqueue_styleдля запуска параметра запроса, как ?ver=1.2.3в моей таблице стилей. Однако, установив его в true, можно объявить версию cache bustтаблицы стилей в таблице стилей. (читать дальше)

В вашем style.css вы должны назвать свою тему. Это требуется WP. Однако, другие параметры, такие как versionто, что версия логического wp_enqueue_style дает ссылку тоже.

/******************************************************************
Site Name: MySite.com
Author: @BenRacicot
Version: 4.0 // <- wp_enqueue_style's version number
Stylesheet: Main Stylesheet
******************************************************************/

Теперь, когда я изменяю это, Version: 4.1я получаюstyle.css?cache-bust=0.24135995238933283

Бен расикот
источник
2

Вы можете просто использовать time()во время постановки в очередь стиль или сценарий, как это ..

Без использования WordPress wp_enqueue_style()функции

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=<?php echo time(); ?>' type='text/css' media='all' />

Используя wp_enqueue_style()функцию

wp_enqueue_style('style_sheet_name', get_stylesheet_directory_uri() . '/custom_style.css', '', time());

ИЛИ

wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());
Мистер Х.К.
источник
1
Я не рекомендовал бы это, я уверен, что это победит кеширование версии все вместе.
Фабиан фон Эллертс