WP_INSERT_TERM不适用于自定义帖子类型的分类

时间:2014-03-06 作者:Gabriela

以下是我遇到的问题:

我有一个名为“weddingguests”的自定义帖子类型。这个自定义帖子类型“weddingguests”有一个自定义分类法,“friendsof”,层次结构。我想通过编程在这个自定义分类法中插入“friendsof”2个术语:“新娘的朋友”和“新郎的朋友”。下面是我用来插入一个术语的函数和操作:

// programatically add 2 terms to the taxonomy "FRIENDS OF"
function example_insert_category() {
    wp_insert_term(
        \'Example Category\',
        \'friendsof\'
    );
}
add_action( \'after_setup_theme\', \'example_insert_category\' );
问题:wp\\u insert\\u term似乎不适用于我的自定义分类法

我所尝试的:

我尝试过将分类法从层次转换为非层次-这不起作用-我尝试过使用wp\\u insert\\u term(相同的代码)向帖子“类别”添加术语-这很有效-我尝试过将自定义分类法“friendsof”分配给帖子,然后添加我的术语(我认为我构建自定义帖子类型的方式有问题)-但没有工作

2 个回复
SO网友:Mhon Lie

尝试init 而不是after_setup_theme

function example_insert_category() {
    wp_insert_term(
        \'Example Category\',
        \'friendsof\'
    );
}

add_action( \'init\', \'example_insert_category\' );

SO网友:s_ha_dum

虽然我不知道为什么,现在也没有时间调查,但你选择的钩子还为时过早。例如,如果使用,init 而不是after_setup_theme.

此外,正如所写的,您的代码在每一个有点浪费的页面加载上运行。应该有一种方法只在插件激活时或者在主题改变时执行,这可以减少执行的频率。最好的情况可能是在主题/插件中使用一个按钮来“填充默认值”。一旦运行,就不再需要它,因为数据在数据库中。

结束