当前主题版本号是否存储在某个地方?

时间:2012-03-27 作者:julien_c

我需要在每个管理页面视图上多次访问我的主题的版本号。

现在我正在使用get_theme_data 进而解析主题的style.css 文件通过get_file_data, 所以style.css 多次进行分析。

是否有此数据的内置缓存机制?或者我应该仅仅构建一个瘦的进程内缓存包装器吗get_theme_data?

谢谢

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

同时,继续使用你的方法。但正如@helenhousandi在评论中链接的那样,WordPress 3.4将引入一个新的WP_Theme 对象,使其更容易。

现在,您正在使用get_theme_data() 返回具有主题版本的数组。不,它没有缓存。。。但是,如果您经常访问它,您可能会在瞬间自己缓存它。

function my_get_theme_version() {
    $value = get_transient( \'theme_version\' );
    if ( !$value ) {
        $info = get_theme_data( /* theme filename */ );
        $value = $info[ \'Version\' ];

        // Cache the value for 12 hours.
        set_transient( \'theme_version\', $value, 60 * 60 * 12 );
    }

    return $value;
}
但在WP 3.4中,get_theme_data() 将不推荐使用,而是用作新WP_Theme API(意味着上述代码仍将工作,但将触发弃用通知)。

因此,您可以使用以下选项:

function my_get_theme_version() {
    $theme_file = /* theme filename */;
    $theme = new WP_Theme( basename( dirname( $theme_file ) ), dirname( dirname( $theme_file ) ) );

    return $theme->get(\'Version\');
}
新对象具有某种级别的内置缓存。我鼓励你阅读围绕新变化的讨论,并在正式记录时遵循法典。

结束

相关推荐