WP_INSERT_CATEGORY()设置‘CAT_ID’时不会出现数组错误

时间:2013-12-19 作者:Philip

我正在写一个插件,它可以自动创建一堆东西,比如类别和子类别。但是,当我使用以下代码创建类别时:wp codex)

//Create Post Categories
$my_cat = array(
    \'cat_ID\' => 1146,
    \'cat_name\' => \'Newcastle Community News & Views\', 
    \'category_description\' => \'\', 
    \'category_nicename\' => \'news\', 
    \'category_parent\' => \'\',
    \'taxonomy\' => \'category\'
);
$my_cat_id = wp_insert_category($my_cat);
它给了我以下错误。

Warning: array_merge() [function.array-merge]: Argument #1 is not an array in /home/newcastl/public_html/wp-includes/taxonomy.php on line 2535
id在“”中的也不起作用。我必须设置ID,以便在使用sub-cats时可以参考它。谢谢

2 个回复
SO网友:Philip

好的,我找到了一个解决方案:在创建新对象(如类别)时,不需要设置ID。相反,我首先使用以下方法创建父类别

$my_cat = array(
    \'cat_name\' => \'Community News & Views\', 
    \'category_nicename\' => \'news\', 
    \'taxonomy\' => \'category\'
);
$my_cat_id = wp_insert_category($my_cat);
在第二步中,我使用

    $parent_term = term_exists( \'news\', \'category\' );
$parent_term_id = $parent_term[\'term_id\'];
$my_cat = array(
    \'cat_name\' => \'Business Articles\', 
    \'category_nicename\' => \'business-articles\', 
    \'category_parent\' => $parent_term_id,
    \'taxonomy\' => \'category\'
);
$my_cat_id = wp_insert_category($my_cat);
注意:不能同时创建父类别和子类别,因为父类别必须存在,创建子类别时,请注意:term_exists( \'news\', \'category\' ); 使用$slug作为第一个参数。法典对这一点不太清楚。

SO网友:Sabita Sahoo

尝试使用wp\\u insert\\u term()代替wp\\u insert\\u category()。您可以使用以下代码:

wp_insert_term(
 \'Newcastle Community News & Views\', 
 \'category\', 
  array(
     \'description\'=>\'\',
     \'slug\'=>\'\',
     \'parent\'=>\'\'
  )
);

结束