我想将此功能添加到以下代码中,以便它还删除具有相同元键值的帖子。换句话说,有一个meta key'source_link',我想删除'source_link'具有相同值的重复项。 这是当前的代码:使用SQL删除具有相同元键值的重复帖子
$wpdb->query("
DELETE double_posts.*
FROM $wpdb->posts as double_posts
INNER JOIN (
SELECT post_title, MIN(id) as min_id
FROM $wpdb->posts
WHERE (post_status = 'publish'
AND post_type = 'post')
OR (post_status = 'published'
AND post_type = 'post')
GROUP BY post_title
HAVING COUNT(*) > 1
) AS orig_posts ON orig_posts.post_title = double_posts.post_title
AND orig_posts.min_id <> double_posts.id
");
目前,它仅仅指刚删除重复的文章标题的帖子。我想保留这一点,然后通过重复元键值添加删除。这里的任何帮助都会很棒!谢谢。
我刚更新了帖子。该代码运行良好,它只能删除重复标题的帖子。我希望通过重复标题和元键值来删除帖子。我问后者。 – arian1123 2014-11-01 00:24:26
尝试收集所有需要删除的帖子的ID并使用[wp_delete_post](http://codex.wordpress.org/Function_Reference/wp_delete_post),因为该功能将删除与帖子相关的所有与该帖子相关的数据。 – Danijel 2014-11-01 00:56:11
你的sql只会选择其中一个重复项,如果你有2个,那么你会得到3个或更多... – doublesharp 2014-11-01 00:57:58