替换帖子内容URL中不需要的空格

时间:2014-09-10 作者:unifiedac

我有一个Wordpress网站,有几百篇帖子。这些帖子是通过批处理创建的,并且动态插入了一段代码。我在插入帖子内容的其中一个超链接的URL中发现了一个错误。每个URL都有一个空格,而不是所需的“-”字符。我试图不手动修复每个帖子。

正如您所看到的,下面的部分URL中有一个空格,导致所有不同帖子中出现404个错误。SQL如下所示:

<a href="http://www.mysite.com/this-URL-is-broken-because-of-a space"></a>
<a href="http://www.mysite.com/this-URL-is-broken-because-of-a space-also"></a>
<a href="http://www.mysite.com/this-URL-is-broken-because-of-a stupid-space"></a>
谷歌是这样看待他们的:

<a href="http://www.mysite.com/this-URL-is-broken-because-of-a%20space"></a>
<a href="http://www.mysite.com/this-URL-is-broken-because-of-a%20space-also"></a>
<a href="http://www.mysite.com/this-URL-is-broken-because-of-a%20stupid-space"></a>
不幸的是,正如您所看到的,URL是不一样的,所以我无法进行查找替换。我希望有人有一些精明的SQL操作来找到空格,并用适当的“-”字符替换它。我想我可以这样说:

将字段中的任何空格替换为“-”字符,除非该空格属于“a href”字符串。

SQL表->wp\\U postsField->post\\U内容

也许有一个。htaccess解决方案?

提前感谢您的帮助!

1 个回复
SO网友:Robert hue

我认为您应该运行此查询。用破折号替换空格。

update wp_posts set wp_posts.post_name = REPLACE( wp_posts.post_name, \' \', \'-\' );
别忘了在这里更改table\\u前缀。此外,在尝试之前,请在当前数据库上保留一个备份。

结束