让插件检查分类是否已由另一个插件注册

时间:2014-02-10 作者:Christoph

我的网站使用的是一种自定义分类法,可以与两种不同的自定义帖子类型相关联。每个帖子类型都由不同的插件注册。可能只有一个插件处于活动状态,或者两个插件都处于活动状态。

我的想法是让每个插件检查分类法是否已经注册,如果没有- 注册它。

我在每个插件中都添加了以下代码,但这当然给了我一个错误(无法重新声明register\\u taxonomy\\u my\\u taxonomy)。

if ( !taxonomy_exists( \'my_taxonomy\' ) ) {
    add_action( \'init\', \'register_taxonomy_my_taxonomy\' );
    function register_taxonomy_my_taxonomy() {
        ...
}

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

问题是,无论您是否使用该函数,都会定义该函数。您需要的是PHP函数function_exists

if ( !taxonomy_exists( \'my_taxonomy\' )
   && !function_exists(\'register_taxonomy_my_taxonomy\') 
) {
    add_action( \'init\', \'register_taxonomy_my_taxonomy\' );
    function register_taxonomy_my_taxonomy() {
        ...
}
不过,您应该能够创建一个可重用的库(类),以更优雅地解决这个问题。

结束

相关推荐