我的网站使用的是一种自定义分类法,可以与两种不同的自定义帖子类型相关联。每个帖子类型都由不同的插件注册。可能只有一个插件处于活动状态,或者两个插件都处于活动状态。
我的想法是让每个插件检查分类法是否已经注册,如果没有- 注册它。
我在每个插件中都添加了以下代码,但这当然给了我一个错误(无法重新声明register\\u taxonomy\\u my\\u taxonomy)。
if ( !taxonomy_exists( \'my_taxonomy\' ) ) {
add_action( \'init\', \'register_taxonomy_my_taxonomy\' );
function register_taxonomy_my_taxonomy() {
...
}
最合适的回答,由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() {
...
}
不过,您应该能够创建一个可重用的库(类),以更优雅地解决这个问题。