如何检查活动主题是父WordPress还是子WordPress

时间:2015-05-22 作者:deemi-D-nadeem

我正在插件中开发插件。我制作模板文件夹,在模板文件夹中,有插件文件显示我的帖子类型数据。

First Scenario

当用户激活我的插件时,模板文件夹将移动到活动主题文件夹。它工作得很好。

Second Scenario

现在如果有父主题和子主题。当父主题激活时,模板文件夹移动到父主题,但当用户激活子主题时,模板文件夹也移动到子主题。

现在我想,如果用户激活父主题,然后模板文件夹移动到父主题,但当用户激活子主题时,它不应该被移动。

例如:

if(parent theme active) {
    //files moved
} else {
    // Do nothing
}
我在谷歌上搜索发现wp_get_theme(); 但它不适合我的工作。

那么,是否有任何钩子或函数,我可以编写它,它解决了我的问题。

以下是我的移动文件夹功能:

$foo_theme_dir = get_template_directory();
$foo_plugin_dir = plugin_dir_path( __FILE__ );

copy($foo_plugin_dir.\'template/archive-foo_plugin.php\', $foo_theme_dir.\'template/archive-foo_plugin.php\');

2 个回复
最合适的回答,由SO网友:deemi-D-nadeem 整理而成

我尝试了这个代码,它解决了我的问题

if ( is_child_theme() === false ) {
    // files moved
} else {
    // do nothing
}
感谢@birgire

SO网友:birgire

您可以尝试以下操作:

add_action( \'switch_theme\', function( $new_name, $new_theme )
{
    if( is_a( $new_theme->parent(), \'\\WP_Theme\' ) )
    {
        // Child theme was activated
    }
    else
    {
       // Parent theme was activated
    }
}, 10, 2 );
查看您刚刚激活的主题是否为子主题。

结束

相关推荐

Custom Post Templates

The Issue: 我正在寻找定制的单篇文章模板,以添加或删除单个元素作为普通单篇文章的功能。有很多方法可以在WordPress中为单个帖子创建自定义帖子模板。尤其是post格式是使用默认模板处理默认情况的绝佳机会;然而,我需要真正的自定义模板。The Idea: 我的第一种方法是根据post ID添加if/else语句:// check if custom post if ( is_single(\'999\') ) // check if there is a custom