7

我正在尝试使用以下代码插入帖子:

$my_post = array(
                'post_type'    => "essays",
                'post_title'    => 'TEST 3',
                //'post_content'  => $content,
                'post_status'   => 'draft',
                'post_author'   => 1,
                //'post_category' => $cat,
                'tags_input'    => 'TQM,tag',
        );

$post_id = wp_insert_post($my_post);

一切正常,除了标签,它不插入任何标签。任何想法?

4

5 回答 5

7

Use the wp_set_object_terms() function:

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

wp_set_object_terms($post_id , $arrayoftags, $name_of_tag_taxonomy, false);

Good luck

于 2013-05-24T15:01:18.900 回答
3

您的帖子类型是essays。默认情况下,自定义帖子类型不支持标签。您必须tags为它们添加分类法。

http://codex.wordpress.org/Taxonomies

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

于 2012-05-03T15:49:30.630 回答
0

嗨,我在某个地方找到了这个答案,这可能会对您有所帮助

//first get the term (I used slug, but  you can aslo use 'name'), see: http://codex.wordpress.org/Function_Reference/get_term_by
$term = get_term_by( 'slug', 'your custom term slug', 'your custom taxonomy' );
//then get the term_id
$term_id = $term->term_id;
//Use 'tax_input' instead of 'post_category' and provide the term_id:
'tax_input' => array( 'your taxonomy' => $term_id )

希望有帮助。

于 2012-11-23T15:50:22.060 回答
0

要插入带有标签和类别的帖子,请执行此操作

$pid=wp_insert_post($new_post);
wp_set_post_terms( $pid, $arrayoftags);
wp_set_post_categories( $pid, $arrayofcategories );

所以 $pid 是帖子 id 基本上你首先插入没有标签或类别的帖子,函数返回帖子的 id,然后你可以使用它来插入标签和类别,每个标签和类别都有各自的功能,如果你查看 wp_insert_post 的源代码您会注意到该函数以不同的方式用于自定义帖子类型,我没有深入研究它,因为我不想破解代码,因为使用内置函数有更好的解决方案

于 2012-08-20T22:20:26.077 回答
-1

标签和帖子类别应该作为一个数组输入,即使它只有一个。所以'tags_input' => 'TQM,tag' 应该是'tags_input' => array('TQM,tag')

于 2012-05-03T17:15:28.333 回答