如何查找页面或文章的内部链接并替换他们

我们维护网站旧文章的时候,经常需要修改一些页面的URL,甚至设置重定向到其他文章。在这样做的时候,我们会使用 301 重定向,但是在网站内的文章、页面甚至评论中,仍然会有一些内链指向原来的链接。在本文中,我们一起来看一下,怎么在你的网站内容中轻松找到这类链接并替换它们。

基本上,你可以在 WordPress 管理器中的 “文章”(如果你想查找其他文章的内部链接)或 “页面”(页面的内部链接)等页面中查找文章的内部链接。然后,你需要在搜索栏中输入你要查找的文章链接的标题。

就这样,它会向你显示与这篇文章有链接的文章:

在这里,我们找到了所有包含 “Hello world “文章链接的文章。

当然,剩下的工作需要手动完成,基本上你需要打开每一篇文章并替换其中的内部链接,如果包含目标内链的文章只有一两篇,直接这样处理就好了。但是如果需要处理的文章非常多,这样做就比较耗时了,这种情况下,我们可以批量替换。

在数据库中搜索和替换

操作数据库时,你需要有访问 phpMyAdmin 的权限,或者有在网站上安装插件的能力。

假设我们只有后者,在这种情况下,我们需要进入 “插件 > 添加新插件”,然后从那里安装一个免费的 “数据库管理工具 – Adminer”。

然后打开 Adminer,进入 “SQL 命令 “部分。现在运行一个 SQL 请求,例如这个:

SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%http://test.wpzhiku.com/hello-world%'

也许你已经知道 WordPress 数据库是如何工作的,但为了以防万一,我还是要为你强调一下:

  • 在我的 SQL 请求中,我要求插件向我显示找到的文章的 ID 和标题、
  • FROM wp_posts表示我们在包含内容的数据库表中进行搜索。请记住,如果你想搜索评论中的内部链接,你需要wp_comments数据库表。此外,在您的具体情况下,数据库前缀也可能不同,例如wprs_posts或其他。
  • 搜索字符串(URL)前后的%符号表示它可能在内容内部。

SQL命令执行结果如下图所示:

从技术上讲,我们在这里发现了两篇文章,其中包含目标文章的 URL – “迪拜的夏天 “和一些没有标题的文章。你在这里看到的重复文章只是一个修改。

再举一个例子,让我们尝试在评论中找到目标文章的内部链接。为此,我们可以运行以下 SQL 命令。

SELECT comment_ID, comment_author FROM wp_comments WHERE comment_content LIKE '%http://test.wpzhiku.com/hello-world%'

结果如下:

我们只找到了一条包含目标文章链接的评论。

搜索和替换的 SQL 查询

如果你不仅想搜索文章和评论内容中的内部链接,还想同时替换它们,下面是相关的 SQL 查询。

针对文章内容中的内部链接:

UPDATE wp_posts SET post_content = REPLACE (post_content, 'URL1', 'URL2');

针对评论中的内部链接:

UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'URL1', 'URL2');

执行完上面的SQL语句之后,我们就把文章和页面内链中的旧链接替换为新链接。

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *