Я хочу реализовать переполнение кэша по определенному сценарию, но версия не добавляется в url в качестве запросов vars.
Вот код, который я использую:
wp_register_script( 'custom', get_stylesheet_directory_uri() . '/js/custom.min.js', array('jquery','modernizr'), filemtime( get_stylesheet_directory().'/js/custom.min.js' ), true );
Я использую функцию filemtime, чтобы получить временную метку последней модификации в качестве моей версии.
Но в источнике я получаю:
<script type='text/javascript' src='http://example.com/app/themes/MyTheme/js/custom.min.js'></script>
Где я хочу что-то вроде http://example.com/app/themes/MyTheme/js/custom.min.js?v=1472031892
Я могу проверить, что это работает для меня, и это похоже на код, который вы предоставили.
Возможно, где-то еще вы определяете свой скрипт. Можете ли вы дать ему новое имя дескриптора для проверки ( 'custom-xyz'
)?
Кроме того, можете ли вы проверить вывод filemtime
чтобы узнать, что он filemtime
? Я добавил « v
» перед ним, если он вернет false
.
$ver = "v" . filemtime( get_stylesheet_directory().'/js/custom.min.js' ); wp_register_script( 'custom', get_stylesheet_directory_uri() . '/js/custom.min.js', array( 'jquery','modernizr' ), $ver, true); wp_enqueue_script( 'custom' );
Если по какой-то причине вы не можете заставить ее работать правильно, когда вы регистрируетесь, вы можете фильтровать тег на выходе с помощью script_loader_tag
и некоторого регулярного выражения или str_replace .
wp_register_script( 'custom', get_stylesheet_directory_uri() . '/js/custom.min.js', array( 'jquery','modernizr' ), '%%CACHE_BUSTER%%', true); wp_enqueue_script( 'custom' ); function script_tag_cache_buster( $tag, $handle, $src ) { if ( 'custom' === $handle ) { return str_replace( '%%CACHE_BUSTER%%', "v" . filemtime( get_stylesheet_directory().'/js/custom.min.js'), $tag ); } return $tag; } add_filter( 'script_loader_tag', 'script_tag_cache_buster', 10, 3 );