我正在开发一个插件,在自定义分类法中插入新术语时遇到了问题。
<?php
add_action(\'init\', \'create_tax\', 0);
function create_tax()
{
$args = array(...);
register_taxonomy(\'custom_tax\', array(\'post\'), $args);
}
// I need this function, so I can use it anywhere in my theme & plugin.
function add_new_term($name)
{
$result = wp_insert_term($name, \'custom_tax\', array(\'parent\'=>0) );
var_dump($result);
}
add_new_term(\'Test Term\');
结果是:
object(WP_Error)#159 (2) { ["errors":"WP_Error":private]=> array(1) { ["invalid_taxonomy"]=> array(1) { [0]=> string(16) "Invalid taxonomy" } } ["error_data":"WP_Error":private]=> array(0) { } }
所以这很卑鄙
wp_insert_term
已执行
before register_taxonomy
. 所以我上钩了
create_tax
在\\u setup\\u theme之后,而不是仅用于测试的初始化。没有任何变化。我终于包装好了
wp_insert_term()
使用函数并将其连接到
wp_loaded 行动但正如您所想象的那样,不可能将所有与分类法相关的函数(如wp\\U insert\\U term、wp\\U list\\U categories…)放在一起到
wp_loaded.
问题是,
我应该用哪个钩子register_taxonomy
? 因为init
hook注册分类法为时已晚。