如何修改wp_get_theme()返回的WordPress主题版本?
修改wp_get_theme()返回的主题版本的方法
虽然wp_get_theme()本身没有直接的钩子,WP_Theme类也没有暴露版本修改的钩子,但可以从主题版本的读取源头入手实现修改:
方法1:过滤style.css的读取数据
WP_Theme类是通过get_file_data()函数读取主题根目录的style.css文件来获取版本号的,我们可以利用get_file_data钩子直接篡改读取到的版本值:
add_filter('get_file_data', function($file_data, $file, $headers, $context) { // 定位当前主题的style.css文件 $current_theme = wp_get_theme(); $target_file = $current_theme->get_stylesheet_directory() . '/style.css'; if ($file === $target_file && isset($file_data['Version'])) { // 将这里的版本号替换成你需要的内容 $file_data['Version'] = '2.0.0-custom'; } return $file_data; }, 10, 4);
这个方法会全局生效,所有通过wp_get_theme()获取的主题版本都会被替换,不管是后台还是前端调用。
方法2:封装自定义函数覆盖调用(按需使用)
如果只需要在特定场景修改版本,可以自己封装一个函数替代wp_get_theme()->get('Version')的调用:
function get_custom_theme_version() { $original_version = wp_get_theme()->get('Version'); // 这里可以根据需求修改版本号,比如拼接自定义后缀或直接替换 return $original_version . '-beta'; }
之后在需要获取版本的地方,直接调用get_custom_theme_version()即可。
内容的提问来源于stack exchange,提问作者Faye D.
相关产品推荐
相关产品推荐

