WordPress wp_insert_post没有插入标签

时间:2012-05-03 15:36:21

标签: php wordpress

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

$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);

除了标签之外,Everythings工作正常,它不会插入任何标签。 有什么想法吗?

5 个答案:

答案 0 :(得分:6)

使用wp_set_object_terms()功能:

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

wp_set_object_terms($post_id , $arrayoftags, $name_of_tag_taxonomy, false);
祝你好运

答案 1 :(得分:3)

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

http://codex.wordpress.org/Taxonomies

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

答案 2 :(得分: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的代码你会注意到该函数以不同的方式为自定义帖子类型工作,我没有看到它,因为我不想破解代码,因为通过使用内置函数有更好的解决方案

答案 3 :(得分: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 )

希望有所帮助。

答案 4 :(得分:-1)

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