我在这里看到了几个类似的问题,但它们似乎要么是针对注册过程,要么涉及到编辑核心插件,要么是引用了我已经在尝试的内容(但对我来说它不起作用!)在这种情况下,我试图将现有注册的cpt和tax关联起来,并通过自定义函数进行关联,这样我就可以更新插件本身而不会出现问题,而且没有一个答案似乎与以下内容具体相关:
我有一些现有的自定义帖子类型(通过第三方插件注册),我需要将标准类别链接到这些类型。我以前对标准页面的帖子类型做过这样的操作,但由于某些原因,我无法使其适用于这些CPT。
在有人询问之前,我通过数据库中的posts表验证了我使用的是正确的post\\u类型名称,以确保我使用的是专有名称。我将以下内容应用于我的自定义函数:
if ( ! function_exists(\'cptpages_register_taxonomy\') ) {
function cptpages_register_taxonomy() {
register_taxonomy_for_object_type(\'category\', \'my-topics\');
register_taxonomy_for_object_type(\'category\', \'my-assignments\');
register_taxonomy_for_object_type(\'category\', \'my-certificates\');
}
add_action(\'plugins_loaded\', \'cptpages_register_taxonomy\');
}
我也用add\\u action(\'init\')尝试过,但没有用。假设我的名字正确,是什么阻止了这个任务的工作??
谢谢你的想法
最合适的回答,由SO网友:Privateer 整理而成
加载plugins\\u肯定会太早,因为使用init设置自定义帖子类型和分类是标准做法。
也就是说,如果init不适用于您,那么很可能是创建它们的人正在稍后的init中创建它们。。。或者您使用的是相同的init优先级,并且您的函数在它们之前启动。
尝试将您的行动呼叫更改为
add_action(\'init\', \'cptpages_register_taxonomy\', 50);
甚至99。。。看看这是否奏效。
否则,请搜索他们的代码,查看他们是如何/何时注册的,并采取相应的行动。