wordpress 3.9显然对permalinks的内部工作方式进行了一些更改。
在我的例子中,这些更改似乎导致一些以前的工作页面开始返回404错误。
这些问题大多适用于多年前写的旧帖子,当时我认为Wordpress在从帖子标题创建permalink slug方面做得并不好。所以一篇旧文章可能会有标题
Ornamental design - Floral background
在我以前的帖子中,它创建了一个永久链接:
/articles/2184/1/Ornamental-design---Floral-background
有3个破折号不是很好,但至少它是有效的。现在,3.9不再是这样了。。上述permalink已停止工作并返回404。
要解决这个问题,我必须进入wordpress,找到帖子并按update。。这会在内部更新slug,将其更改为应该的状态:
/articles/2184/1/ornamental-design-floral-background
问题是,这影响了700多篇帖子,我真的不想在Wordpress admin和press update中找到每篇帖子。我还有一个问题,旧的url在更新后返回301,所以我也因此失去了一点谷歌公关。
My question
有什么方法可以让WP 3.9处理我的旧(不太好)URL吗?如果没有,我有没有办法批量更新帖子以更正URL?
最合适的回答,由SO网友:Scott Weber 整理而成
如果您有权访问数据库,则可以运行以下查询。不久前我也遇到过类似的问题。
UPDATE wp_posts SET post_name = REPLACE(post_name, \'---\', \'-\')
这将用post\\u名称中的单个“-”大容量替换每个“---”。明智的做法是在“guid”字段上运行相同的命令。
也许有人有更好的解决方案,但这在过去对我很有效。