我使用以下代码允许登录用户设置从前端删除自己的帖子。有没有办法做同样的事情,但将帖子设置为'草稿'而不是完全删除它?
<?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 } ?>
答案 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了解有关更新帖子状态的更多信息