Як змінити версію .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

Четвертий аргумент, $verдля 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. Якщо встановлено нульове значення, версія версії не додається. Значення за замовчуванням: false


Дякую за це - я здогадуюсь, що я прошу: «як це зробити» - тобто «як запустити цей сценарій для створення нової версії»? Сподіваюся, що має сенс ...
Генрі

Ви б оновили своє запитання кодом, куди wp_enqueue_style()дзвонили? WordPress обробляє версію автоматично на основі пояснення, $verрозміщеного у моїй відповіді, тому я припускаю, що $ ver встановлено на хибне. Якщо ви хочете змінити його, змініть аргумент $ ver на новий рядок (я б не використовував 4.6.2, оскільки ця конвенція вже використовується WordPress), але технічно це буде працювати.
Дейв Ромсі

1
Ви можете легко замінити будь-що там. Наприклад $ver = time();, ви робите нову версію кожного разу, коли ви переходите на сторінку, і версія буде час.
Натан Пауелл

8

Переважно використання теми wp_enqueue_style()функціонує у їхньому файлі function.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у вашому файлі function.php, і ви, ймовірно, повинні знайти рядок коду, який ви шукали.

Тепер, коли ви знайшли код і знаєте, що ваша тема додає цю таблицю стилів, використовуючи wp_enqueue_style()файл function.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' );

Це досить це. Мир!


Голова вгору: ви повинні використовувати get_stylesheet_directory()всередині, filemtime()оскільки це поверне системний шлях.
Наполовину божевільний

3

Я не отримав багато з цих відповідей, тому подумав написати те, що працювало на мене. Я знаю, що в кодексі написано:

$ ver (string | bool | null) (Необов'язково) Рядок із зазначенням номера версії таблиці стилів, якщо він має такий, який додається до URL-адреси у вигляді рядка запиту для розбиття кешу. Якщо для версії встановлено значення false, номер версії автоматично додається рівним поточній встановленій версії WordPress. Якщо встановлено нульове значення, версія версії не додається. Значення за замовчуванням: false

Але це дуже сумно, як це насправді працює. Я не міг отримати номер версії, wp_enqueue_styleщоб викликати параметр запиту, як ?ver=1.2.3на моєму аркуші стилів. Однак встановлення його на істинне дозволяє задекларовану версію 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()в такий час стиль стилю або сценарій, як цей ..

Без використання wp_enqueue_style()функції WordPress

<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
Я б не рекомендував цього, я впевнений, що це переможе кешування версії всіх разом.
Fabian von Ellerts
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.