Запобігати параметру URL-адреси версії (? Ver = XXX) для зачеплених стилів та сценаріїв


12

Використовуйте кейс

Я експериментував із функціями Dev Tools Workspace для Chrome. Вона включає можливість редагування файлу безпосередньо в інструментах Dev та збереження збереженої таблиці стилів (або навіть компілювання та оновлення!).

Однак, як це зафіксовано у запитанні StackOverflow, що "Автоматична перезавантажена створена CSS Chrome" не перезавантажує сторінку, коли SASS перекомпілює CSS " , параметри URL-адреси в URL-адресі таблиці стилів не дозволяють Chrome помітити зміни.

Бажаний результат

Це означає, що лише під час розробки я хотів видалити ?ver=X.X.Xз нормального <link>виводу таблиці стилів wp_enqueue_style(). Іншими словами, я хотів за замовчуванням href:

http://localhost/mysite/wp-includes/style.css?ver=4.1.1

щоб замість цього було:

http://localhost/mysite/wp-includes/style.css

Відповіді:


12

wp_enqueue_[style/script]()Поведінка за замовчуванням

Значення по замовчуванням для $versionаргументу з wp_enqueue_style()IS false. Однак цей типовий параметр просто означає, що таблицям стилів натомість надається версія WordPress .

Рішення

Завдяки "Видалити версію з WordPress зав'язали CSS та JS" , я дізнався незадокументований факт, що передача у nullверсію повністю видалить версію!

Приклад

wp_enqueue_style( 'wpse-styles', get_template_directory_uri() . '/style.css', array(), null );

Нагадування про кавер

Варто зазначити, як зазначалося в питанні, що це, мабуть, слід робити лише під час розробки (як у конкретному випадку використання). Параметр версії допомагає кешувати (а не кешувати) для відвідувачів сайту, тому, ймовірно, його слід залишати в спокої в 99% випадків.


8

Дякую за ваш пост, mrwweb.

Я знайшов інше рішення для цього, створивши дуже простий плагін, який ви можете зробити деактивним, коли сайт вже не розробляється.

<?php

/*
Plugin name: Strip WP Version in Stylesheets/Scripts
*/

function switch_stylesheet_src( $src, $handle ) {

        $src = remove_query_arg( 'ver', $src );
        return $src;
}
add_filter( 'style_loader_src', 'switch_stylesheet_src', 10, 2 );

?>

Я провів пару хвилин, намагаючись знайти це рішення. Думав, що я можу поділитися іншим варіантом тут, а не створювати нове питання / відповідь.


не працює ...
Регі

Це правильна відповідь. Використовуйте цей фільтр під час розробки та видаліть його, як тільки він розпочнеться реалізація.
dtbaker

Шлях краще, ніж стилі dequeue та queue. Також застосовно до сценаріїв з фільтромscript_loader_src
Dharma
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.