Как удалить версии файлов из ссылок на исходные файлы в wp_head?


9

Я заметил внутреннюю wp_headфункцию в исходных ссылках каждого .css, добавляются .jsфайлы ?ver=1( или другое число, основанное на версии файла / библиотеки ). Как я могу переписать их, чтобы удалить их?

Эта проблема, я думаю, вызывает проблемы в части манифеста кэша.

Ответы:


16

Вы можете подключить в style_loader_srcи script_loader_srcи запустить remove_query_arg( 'ver', $url )на URL:

<?php
/* Plugin Name: Remove version parameter for scripts and styles */

add_filter( 'style_loader_src', 't5_remove_version' );
add_filter( 'script_loader_src', 't5_remove_version' );

function t5_remove_version( $url )
{
    return remove_query_arg( 'ver', $url );
}

Без этого плагина:

введите описание изображения здесь

После активации плагина:

введите описание изображения здесь

В одном случае это не получится: когда кто-то не использовал API скрипта / стиля, но добавил в заголовок жестко закодированную строку.


Аккуратное использование remove_query_arg().
Генрирайт

2

Это сработало для меня, когда мне все еще приходилось загружать таблицу стилей из Google Fonts.

<?php
add_filter( 'script_loader_src', 'wpse130419_remove_script_version', 15, 1 );
add_filter( 'style_loader_src',  'wpse130419_remove_script_version', 15, 1 );
function wpse130419_remove_script_version( $src ) {

    $url = explode( '?', $src );

    if ( $url[0] === 'http://fonts.googleapis.com/css' ) :
        $version = explode( '&ver=', $url[1] );
        $url[1]  = $version[0];
    endif;

    return ( $url[0] === 'http://fonts.googleapis.com/css' ) 
        ? "{$url[0]}?{$url[1]}"
        : $url[0]
    ;
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.