将 Wordpress 帖子状态设置为从前端'Draft',类似于get_delete_post_link



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

<?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 } ?>

使用这个函数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);

和测试。阅读本文了解更多关于更新后状态

相关内容

  • 没有找到相关文章

最新更新