我使用下面的代码来允许登录用户设置从前端删除他们自己的帖子。有没有一种方法可以做同样的事情,但将帖子设置为"草稿",而不是完全删除它?
<?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);
和测试。阅读本文了解更多关于更新后状态