【问题标题】:Wordpress SQL delete posts and their related metaWordpress SQL 删除帖子及其相关元
【发布时间】:2015-02-28 03:22:27
【问题描述】:

我有当前的 SQL 查询,它将删除自定义帖子类型 clothing 中超过 2 天的所有帖子

    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

问题是这个查询似乎没有删除相关元数据,例如已删除帖子的相关自定义字段。

我的问题是,如何修改此代码以同时从这些帖子中删除相关元数据?

谢谢

【问题讨论】:

  • 是否有理由不定义外键约束?
  • 不幸的是,我不知道,我没有写这个查询,我在另一个线程上找到它并测试它可以工作,但它并没有删除相关的元数据
  • 我认为 DELETE FROM 不能这样工作。尝试将查询放入phpMyAdmin 之类的工具中。为了确保它会通过,您可以为此目的进行三个查询。一种选择要删除的帖子 ID。第二个 DELETE FORM pm where post_id IN 以前选择的 ID,最后一个删除帖子,其中 ID 在相同的选定 ID 中。

标签: mysql sql wordpress


【解决方案1】:

你应该分两步处理:

1- 随您查询,构建要删除的帖子数组 2- 用 foreach 和 wp_delete_post() 循环这个数组

(http://codex.wordpress.org/Function_Reference/wp_delete_post)

核心函数 wp_delete_post 将处理所有相关数据,例如元数据,但也处理帖子计数,这些数据存储在数据库中并在插入或删除帖子时进行修改

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多