Wp_INSERT_POST中的文章类别

时间:2013-07-08 作者:ewcost

我正在建立一个wordpress主题,人们可以使用wp_insert_post提交帖子。下面的代码添加了文章标题,但没有添加用户指定的类别。相反,它将其置于未分类状态。如何在提交时添加用户提交的类别?

<?php 

if(isset($_POST[\'new_post\']) == \'1\') {
$post_title = $_POST[\'post_title\'];
$new_cat_ID = $_POST[\'category\'];

//Checking if category already there
$cat_ID = get_cat_ID( $_POST[\'newcat\'] );


//If not create new category
if($cat_ID == 0) {
       $cat_name = array(\'cat_name\' => $_POST[\'newcat\']);
       wp_insert_category($cat_name);
}

//Get ID of newly created category
$new_cat_ID = get_cat_ID($_POST[\'newcat\']);


// Create post object
$new_post = array(
\'ID\' => \'\',
\'post_title\' => $post_title,
\'post_status\' => \'publish\',
\'post_author\' => $user->ID,
\'tax_input\' => array( \'category\' => $new_cat_ID )
);

// Insert the post into the database
$post_id = wp_insert_post($new_post);


// This will redirect you to the newly created post
$post = get_post($post_id);
wp_redirect( home_url() ); exit;
}     
?>
这是html表单。。。

    <form style="" action="" method="post" id="foo">
<input type="hidden" name="new_post" value="1"/>
<input type="text" name="post_title" value="http://<?php echo $seal; ?>" id="input-title"/>
<input type="text" name="post_category" value="2" id="post_category" />
<input type="submit" value="Login">
</form>

1 个回复
SO网友:tfrommen

实际上,我并没有彻底测试您的代码,但在第一眼看到时:
您的表单输入被命名为post_category 当你抓取的时候$_POST[\'new_cat\']. 调整(例如,将两者都设置为post_category) 应该已经这样做了。

// EDIT<那你为什么要抓$_POST[\'category\'] 在第5行?

结束

相关推荐

GET_POSTS-找出查询字符串是否是垃圾并使用了回退

如果我们将字符串传递给以下函数get_posts, 并且该字符串不是有意义的查询字符串(例如get\\u posts(“”)),该函数返回默认查询的结果(最后五篇posts或类似的结果)。是否有可能抑制这种行为,或者更好的是,找出字符串是否是有意义的查询字符串,或者函数是否只是返回到默认值,因此它不是?更改默认查询设置不是一个解决方案,因为我不想影响主循环,而只想调用get_posts 在插件中。