我正在寻找一种安全快捷的方法来删除一个自定义帖子类型的所有帖子。对返回的帖子使用get_posts()
和wp_delete_post()
均无效;由于涉及的数据库查询数量庞大(超时错误),因此速度不够快。
最好是,我正在寻找一个要删除所有自定义帖子类型的帖子的数据库查询来运行。有什么想法吗?
这是一次性活动吗?如果是这样,通过phpMyAdmin进行快速SQL查询似乎最简单。如果这是一个需要通过编程/重复进行的整理步骤,那将对您没有帮助。
—
jdm2112
不幸的是,它需要定期进行,而无需手动访问数据库。
—
Marcus McLean 2015年
收到。我建议
—
jdm2112
wpdb
然后去上课。直接与数据库一起使用的首选方法和“ WP方式”。让我们知道您是否需要有关该查询的帮助。如果需要,我可以稍后发布完整答案codex.wordpress.org/Class_Reference/wpdb
使用
—
Pieter Goosen 2015年
'fields' => 'ids',
中get_posts
只得到帖子的ID。这就是您所需要的,它将大大加快您的查询速度
@MarcusMcLean:显然,您错过了我的观点;)单个帖子在posts表,postmeta表,分类表以及可能的options表中都有数据。您编写的用于删除这些帖子的任何纯SQL查询都将非常复杂。您很有可能将那些东西遗留在那些不同的表中。我会尝试使用Core函数以5分钟的间隔每次删除50个,以及
—
s_ha_dum 2015年
wp_cron()