删除重复页面,以便仅存在原始页面

时间:2015-06-04 作者:Dansghc

基本上,我在wordpress网站上有大约4000页,我已经确定1320页是重复的。

我知道我可以手动选择每一个,然后将它们批量移动到垃圾箱等,但有人知道更省时的方法吗?

也许是一个MYSQL查询来删除所有重复的页面?

URL示例如下:

(原件)

/第页/

(重复)

/第2页/有时甚至第3页/

必须有一种方法可以批量删除添加了-2或-3的所有页面

谢谢你的帮助。

一些附加信息

我根据位置创建了页面,我刚刚意识到我有如下页面

粗花呢上的Berwick

粗花呢上的Berwick

理想情况下,我希望删除标题中带有-的页面

1 个回复
SO网友:s_ha_dum

正如你向我保证的那样,帖子标题是帖子“重复”状态的准确指示器,一点SQL和wp_delete_post() 可以做到:

$sql = "SELECT ID
  FROM {$wpdb->posts} 
  WHERE post_title REGEXP \'^.*-[[:digit:]]*$\'
  AND post_type = \'page\'";
$del = $wpdb->get_col($sql);
foreach ($del as $d) {
  wp_delete_post($d);
}
如前所述,除非禁用,否则您的副本将最终进入“垃圾箱”。您可以使用。。。

wp_delete_post($d,true);
。。。强制删除。

根据以下评论:

我根据位置创建了页面,我刚刚意识到我有一些页面,比如Berwick on Tweed和Berwick on Tweed,我会Ideally like to delete the pages with the - in the title...

我忍不住认为这是一件非常危险的事情,但SQL很简单:

$sql = "SELECT ID
  FROM {$wpdb->posts} 
  WHERE post_title LIKE \'%-%\'
  AND post_type = \'page\'";

结束

相关推荐

Pages_Links()更改链接的顺序

使用时paginate_links() WordPress的功能,我需要改变它的输出顺序。例如,默认情况下,它将以以下格式输出分页链接:Default Output:<<PREV 1 2 3 NEXT>> 但我需要以下格式的输出:Required Output:1 2 3 <<PREV NEXT>> 现在的问题是,如何根据我的要求更改这些分页链接的顺序?