如何通过wp_sert_post添加新类别

时间:2013-03-28 作者:Adi

我正在使用fornt end表单提交,现在我想添加新类别,在添加此类别之前,我想检查它是否存在,如果存在,则简单添加到该类别,否则添加新类别。所以在法典中,他们说如果你必须添加目录,只需使用

wp_set_post_terms();
还有一个函数可以添加这个

wp_set_object_terms();
还有一种添加类别的方法是

wp_insert_category($cat_name);
因此,它们是如何工作的,以及我从它们中选择了哪一个,都存在着困惑。我有类别的名称,所以现在可以使用它了。有代码如何添加它们,但它们不适合我。

//Check if category already exists
$cat_ID = get_cat_ID( $category );

//If it doesn\'t exist create new category
if($cat_ID == 0) {
$cat_name = array(\'cat_name\' => $category);
wp_insert_category($cat_name);
}

//Get ID of category again incase a new one has been created
$new_cat_ID = get_cat_ID($category);

// Create post object
$new_post = array(
\'post_title\' => $headline,
\'post_content\' => $body,
\'post_date\' => $date,
\'post_status\' => \'publish\',
\'post_author\' => 1,
\'post_category\' => array($new_cat_ID)
);
因此,任何解决方案。谢谢

2 个回复
SO网友:dipali

$id = wp_create_category(\'My category name\');
按上述功能类别创建(&P);返回Categray id。

如果类别已存在,则不会重复。返回原始现有类别的ID时不会出错。

您可以使用$id 作为类别id。

参考文献

http://codex.wordpress.org/Function_Reference/wp_create_category

SO网友:Fabien Quatravaux

WordPress提供了一种定义其他对象的方法,而不仅仅是Posts:这称为custom post types. 每个自定义帖子类型都可以有自己的分类法,特定分类法中的一个条目称为“术语”。默认帖子类型的默认分类是“类别”。

所以wp_set_post_terms 可以用于为帖子设置类别,也可以用于在其他分类法中设置术语。和wp_set_object_terms 更通用:您可以使用它在任何分类法中为任何帖子类型设置术语。为帖子设置类别时应该使用的更专门的函数是wp_set_post_categories. wp_set_post_categories 使用wp_set_post_terms, 其中使用wp_set_object_terms. 这对你有意义吗?

wp_insert_category 做不同的工作:它在可用类别列表中创建一个新类别,但不为特定的帖子设置此类别。

结束

相关推荐

在小部件选项中使用wp_Dropdown_Categories

我有一个产品搜索小部件,当您选择某些产品时,会显示一个隐藏字段。我想在我的小部件选项中设置一个自定义类别,然后用于显示隐藏字段。当我将父category\\u id手动添加到代码中时,前端可以100%工作。现在我只需要在后端设置category选项。这是我目前拥有的,但它不起作用,因为它没有存储所做的选择。我省略了搜索表单,因为它没有使用任何小部件选项。class Equipment_Search extends WP_Widget { function Equipment_Se