以编程方式创建类别

时间:2012-12-04 作者:ndp

我正在创建一个批量上传程序,如果我也可以将父类别添加到我的帖子中,那就太好了。

我有以下代码:

        $my_cat = array(
        \'cat_name\' => $cat_name,
        \'category_description\' => $cat_desc,
        \'category_nicename\' => $cat_slug,
        \'category_parent\' => $cat_parent);

if(function_exists(\'wp_insert_category\')){
    $my_cat_id = wp_insert_category($my_cat);

}elseif(function_exists(\'wp_create_category\')){
    $my_cat_id = wp_create_category($cat_name,$cat_parent);

}elseif(function_exists(\'wp_insert_term\')){

    $parent_term = term_exists( $cat_name, $cat_parent );
    $parent_term_id = $parent_term[\'term_id\'];
    $var = wp_insert_term($cat_name,$cat_parent);

    if ( is_wp_error($var) ){
    echo $var->get_error_message();
    echo " Category ";var_dump($cat_name);echo" failed to be created ";
    }
$cat\\u name和$cat\\u parent始终对某些值有效,并且在创建$cat\\u name之前始终存在$cat\\u parent。

但我得到的总是

无效的分类法

这意味着最后一个elseif会运行。

我正在从主题函数运行此代码。php文件

所以我有两个问题:

第一:如果案例运行,为什么前两个都不运行?(如果我删除If exists检查,它会报告该函数不存在)

第二:为什么第三个不跑?

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

wp_insert_categorywp_create_category 都在wp admin/includes/taxonomy中。php。它们不是通用函数,不能在任何地方使用。wp_insert_term 是,但您使用不正确。看见the Codex 有关正确使用的详细信息,简而言之,这里有一张备忘单:

wp_insert_term( $term, $taxonomy, $args = array() );
...
$defaults = array( \'alias_of\' => \'\', \'description\' => \'\', \'parent\' => 0, \'slug\' => \'\');
我相信你想更改代码的意思是,

$var = wp_insert_term( $cat_name, \'category\', array( \'parent\' => $parent_term_id ) );

结束

相关推荐

Page for custom taxonomy

我是WordPress的新手,我刚刚在一个名为arts的自定义帖子类型下创建了一个名为categories的新自定义分类法。有没有办法创建一个自定义页面来显示“类别”的自定义类型?这样,用户可以导航到艺术/类别,并查看类别分类法下的所有术语。