将Wordpress帖子状态从前端设置为“草稿”,类似于get_delete_post_link

时间:2015-05-25 21:43:04

标签: wordpress post frontend status

我使用以下代码允许登录用户设置从前端删除自己的帖子。有没有办法做同样的事情,但将帖子设置为'草稿'而不是完全删除它?

<?php if ($post->post_author == $current_user->ID) { ?>
   <p><a onclick="return confirm('Are you SURE you want to delete this?')" href="<?php echo get_delete_post_link( $post->ID ) ?>">Delete post</a></p>
<?php } ?>

1 个答案:

答案 0 :(得分:2)

使用此函数wp_update_post(),您可以使用此示例进行测试:

首先创建一个表单,如果帖子将成为草稿

,您希望用户选择
<form action="" method="POST" >
    <input type="checkbox" value="ok" name="draft">
    <input type="submit" value="Ok">
</form>

然后创建一个函数来保存新的状态,将其放在function.php中:

function toDraft($pid){

$toDraft = $_POST['draft'];
   if($toDraft == 'ok'){
      echo "string";
      wp_update_post(array('ID' => $pid, 'post_status'   =>  'draft'));
  }

}

然后在您创建的表单下添加此功能。

toDraft($post->ID);

并测试。 Read this了解有关更新帖子状态的更多信息