我們維護網站舊文章的時候,經常需要修改一些頁面的URL,甚至設置重定向到其他文章。在這樣做的時候,我們會使用 301 重定向,但是在網站內的文章、頁面甚至評論中,仍然會有一些內鏈指向原來的鏈接。在本文中,我們一起來看一下,怎么在你的網站內容中輕松找到這類鏈接并替換它們。
使用 WordPress 文章搜索
基本上,你可以在 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命令執(zhí)行結果如下圖所示:
從技術上講,我們在這里發(fā)現了兩篇文章,其中包含目標文章的 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');
執(zhí)行完上面的SQL語句之后,我們就把文章和頁面內鏈中的舊鏈接替換為新鏈接。


