mysql - Wordpress SQL 删除自定义帖子类型和元数据

标签 mysql wordpress

我有以下 SQL 查询,它能够获取和删除超过 X 天的自定义帖子类型的所有帖子。

SELECT * FROM `wp_posts`
WHERE `post_type` = ‘clothing’
AND DATEDIFF(NOW(), `post_date`) > 2

DELETE * FROM `wp_posts`
WHERE `post_type` = ‘clothing’
AND DATEDIFF(NOW(), `post_date`) > 2

但是从我在网上读到的,上面的代码似乎并没有真正删除帖子的元信息,所以我仍然有一堆剩余的数据。

我的问题是,我该如何修改这段代码,以便所有相关的元信息也从已删除的帖子中删除?

谢谢

最佳答案

您可以通过连接表来删除数据。在 WP 中,wp_postswp_postmetawp_postmeta 表中的 post_id 相关。使用下面的查询将从两个表中删除。但是,还有其他选项,即您可以在 wp_posts 上删除后触发触发器,以从相关表中删除数据或使用删除级联的外键约束

delete
p,pm
from wp_posts p
join wp_postmeta pm on pm.post_id = p.id
where p.post_type = 'clothing'
and DATEDIFF(NOW(), p.post_date) > 2

关于mysql - Wordpress SQL 删除自定义帖子类型和元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26992969/

相关文章:

c# - 为什么不能在一个方法中调用两次 OpenConnection()?

mysql - 如何在没有 DROP 数据库权限的情况下从命令行删除所有 MySQL 表?

mysql - MAMP MySQL 服务器无法启动

WordPress : Change title of sidebar widget dynamically

css - wordpress:删除存档上的帖子摘录但保留缩略图

php - 仅在 WooCommerce Admin 手动订单的单个订单中显示产品自定义字段

php - 计算某些数据时如何进行表格分页?

php - 将选择选项插入数据库

mysql - 在 SQL 中查找并替换或删除部分字符串

php - 如何使图标在左侧对齐的中心图标列表小部件(Elementor)?