我正在创建一个批量上传程序,如果我也可以将父类别添加到我的帖子中,那就太好了。
我有以下代码:
$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检查,它会报告该函数不存在)
第二:为什么第三个不跑?
最合适的回答,由SO网友:Matthew Boynes 整理而成
wp_insert_category
和wp_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 ) );