获取样式和脚本文件版本,并在编写缓存清单文件时使用它们

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

之前,我学习了如何从wordpress样式中删除文件版本,并在wp_head 作用从这里开始:How to remove file versions from the file source links in wp_head?

我有充分的理由需要采取行动。为什么?在编写缓存清单文件时,我在该文件中还成功地写入了绝对源链接,但没有?ver= 参数wp_head 已生成使用的主题?ver= 参数syle和脚本文件包含。因此,缓存数据和主题数据之间存在平滑的差异。我不知道这是否是我在测试网站离线时无法获得这些样式的原因。

Question:

现在我想知道的是,我如何添加?ver= 缓存清单文件条目的参数。我这样写缓存文件的行:

$hashes = "";
$network = array("\\n\\nNETWORK:");
$cache = array("\\n\\nCACHE:");
$path = get_stylesheet_directory()."/";
$dir = new RecursiveDirectoryIterator( $path );

foreach(new RecursiveIteratorIterator($dir) as $file) {
    if ($file->IsFile() && $file != "./manifest.php" && substr($file->getFilename(), 0, 1) != ".") {
        if(preg_match(\'/.php$/\', $file)) {
            if (isAllowedExtension($file))
                array_push($network,"\\n" . str_replace($path, \'./\', $file));
        } else {
            if (isAllowedExtension($file))
                array_push($cache,"\\n" . str_replace($path, \'./\', $file));
        }

        $hashes .= md5_file($file);
    }
}
因此,这不是绝对的url,我只是想知道如何可能添加?ver= 此文件url的参数:)

===

更新时间:

if( !strpos( $file, \'?ver=\' ) ) {
    $file = add_query_arg( \'ver\', $file );
    return $file;
}
这只是一次尝试。。。代码不完整。首先,我认为我们应该检查文件是否有任何版本,然后在源url之后添加version参数。

1 个回复
SO网友:fuxia

您可以使用add_query_arg():

$url = add_query_arg( \'ver\', $GLOBALS[\'wp_version\'], $url );
但我发现了一个问题:你如何才能确保资源被实际使用?您如何知道作者尚未通过自定义版本?

因此,只有在非常受控的环境中才能做到这一点:当您了解有关代码的所有信息时。

结束