如何从wp_head中的文件源链接中删除文件版本?

时间:2013-04-18 作者:Grávuj Miklós Henrich

我观察了wp_head 在每个.css, .js 文件a?ver=1 添加了(或基于文件/库版本的其他编号)。如何覆盖它们以删除它们?

我认为这个问题导致缓存清单部分出现问题。

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

你可以加入style_loader_srcscript_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 );
}
没有此插件:

enter image description here

插件激活后:

enter image description here

有一种情况会失败:有人没有使用脚本/样式API,但在标题中添加了硬编码字符串。

SO网友:glueckpress

当我仍然需要从Google字体加载样式表时,这对我来说很有用。

<?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]
    ;
}

结束

相关推荐

hide wp-content from urls

下面是我想从页面源中包含的文件的URL中隐藏wp内容的想法。在wp设置中定义以下内容。phpdefine (\'WP_CONTENT_URL\',\'http://example.com/myownfoldername\'); 并将此添加到.htaccessRewriteRule ^myownfoldername/(.*) /wp-content/$1 [QSA,L] 在localhost上没有其他插件的情况下,这似乎可以很好地工作,但在只有几个插件的在线站点上,它可以无缝地工作。我更