Get parent theme version

时间:2020-12-18 作者:transbetacism

如何在子主题中获取父主题的版本?

我想在加载父主题的样式表时使用它。

下面是我如何将样式表加载到子主题的functions.php 文件:

function sometheme_enqueue_styles() {

  // Get parent theme version
  $parent_theme_version = wp_get_theme()->parent()->get( \'Version\' );

  // Load parent theme stylesheet
  wp_enqueue_style( \'sometheme-style\', get_template_directory_uri() . \'/style.css\', array(), $parent_theme_version );

  // Load child theme stylesheet
  wp_enqueue_style( \'sometheme-child-style\',
    get_stylesheet_directory_uri() . \'/style.css\',
    array( \'sometheme-style\' ),
    wp_get_theme()->get(\'Version\')
  );

}
add_action( \'wp_enqueue_scripts\', \'sometheme_enqueue_styles\', 11 );
但是,这将对两个样式表使用子主题的版本。。。

我也尝试过:

$parent_theme = wp_get_theme(\'sometheme\');
$parent_theme_version = $parent_theme->get( \'Version\' );
。。。还有这个:

$parent_theme = wp_get_theme(get_template());
$parent_theme_version = $parent_theme->get( \'Version\' );
但是,父主题版本仍然从子主题获取版本。

解决方案wp_get_theme()->parent()->get( \'Version\' );wp_get_theme()->parent()->Version; 作品

问题是父主题正在使用$theme_version = wp_get_theme()->get( \'Version\' ); 同样,这意味着它将使用子主题版本。

由于我拥有父主题,我将父主题更改为wp_get_theme(\'sometheme\')->get( \'Version\' ); 所以它总是使用自己的版本。

这样,我可以使用wp_get_theme()->parent()->get( \'Version\' );wp_get_theme()->parent()->Version; 在子主题中。

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

WP_Theme class, 这个get 方法为您提供一个经过清理的主题标头。不能使用它提取属性。实际上,您不需要这样做,因为您可以像这样直接访问它:

 // get the parent object
 $parent = wp_get_theme()->parent();
 // get parent version
 if (!empty($parent)) $parent_version = $parent->Version;

SO网友:jdm2112

查看基于cjbj建议方法的编辑,请确保调用时使用的是父主题的实际目录名wp_get_theme(). 注意-在许多情况下,这不是主题的首字母或书面名称。

如果sometheme 是父主题的文件目录,则应返回父主题对象:

var_dump( wp_get_theme( \'sometheme\' ) );
在该主题对象中是版本。让我们确保首先返回父主题。

为此添加输出var_dump() 如果不是父主题,请说明您的问题。

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c