Запобігати параметру 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.