我想知道是否仅仅使用wp_delete_post($post_id, true);
就足以删除DB中与帖子绑定的所有内容,跳过垃圾。
根据documentation,它是,但有几个答案在互联网上提到使用delete_post_ meta也,像这样:
// Delete all Post Meta
foreach (get_post_meta($post_id) as $key => $val) {
delete_post_meta($post_id, $key);
}
wp_delete_post($post_id, true);
最佳实践是什么?
2条答案
按热度按时间w51jfk4q1#
根据你所链接页面上的源代码,
wp_delete_post($post_id, true);
删除了所有链接到帖子的元数据和评论。它强制删除帖子,因此绕过了垃圾桶。作为对你问题的回答,这就足够了。代码中的引用(wp-includes/post.php:3438-3448):
如果您只想删除post meta,请不要使用
wp_delete_post()
,而使用delete_post_meta()
。dfuffjeb2#
是的。使用wp_delete_post($post_id,true)可以删除数据库中所有与帖子相关的信息,包括附件和帖子 meta数据,并绕过垃圾桶,导致立即删除。但是,如果您想删除与帖子相关的帖子元数据,除了wp_delete_post()函数之外,还应该使用delete_post_meta()函数。