[WordPress] 用 Search Regex 正規表示法,快速大規模搜尋/取代網誌內容

[WordPress] 用 Search Regex 正規表示法,快速大規模搜尋/取代網誌內容

從痞客邦搬家到 WordPress 之後,有很多東西要處理的,

像是有一個是我之前會在文章中加入 Adsense 廣告的 script,

但現在 WordPress 上就有外掛 (如 AD Inserter) 可以直接顯示廣告,

因此我不需要在每篇文章中自己手動加入,

但這自動加入廣告的功能也導致舊的文章會出現兩個廣告,

一個是我在文章裡手動加的,一個是外掛產生的…

 

來看一下我之前加的 Adsense 的 script 長什麼樣子吧:

<p>
<script src=”//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js” type=”text/javascript”></script>
<!– forarticleuse-300×250 –> <ins class=”adsbygoogle” style=”display: inline-block; width: 300px; height: 250px;” data-ad-client=”ca-pub-xxx” data-ad-slot=”yyy”></ins>
<script type=”text/javascript”>// <![CDATA[
(adsbygoogle = window.adsbygoogle || []).push({});
// ]]></script>
<script src=”https://rebrand.ly/dropb1983″ type=”text/javascript”></script>
</p>

 

在這段 script 裡面,麻煩的是我曾經調整過廣告的大小,

所以並不是每篇文章裡的廣告大小都是 300×250。

另外,我在 script 的最後又引入了另外一個外部的 js 檔案,

但舊文章裡的 script 可能並沒有這一段…

 

想要把上面這段有部分會變動的 script 全部找出來並拔掉,

最好的方法就是使用正規表示法了 (regular expression)

在 WordPress 外掛裡找到了 Search Regex 這個好用的外掛,

它可以支援一般文字的搜尋/取代,

強大的是它還可以用正規表示法來搜尋/取代,來看看吧~

 

1. 安裝 Search Regex 外掛

在 WordPress 外掛區找一下 Search Regex 就可以安裝了。

雖然這個外掛已經一年沒有更新了,

但看一下最近幾個月的評價都還不錯,說可以正常運作沒問題:

 

2. 使用 Search Regex 的正規表示法搜尋

安裝好之後,打開 工具 > Search Regex ,

這邊就可以打要搜尋的東西,和要取代成什麼字串。

在 Search pattern 這邊如果打入 /xxx/ 這種斜線開頭結尾的字串,

並且把 Regex 的勾勾選起來的話,就變成以正規表示法搜尋。

 

以我想要找到上述的 script 的話,我的搜尋正規表示法如下~

可以看到 <p> 的後面我用 s* 來代表換行,

至於 / 符號全都得跳脫 (escape),因此全都變成 /,

接著我把確定不會變動的 pagead2.googlesyndication.com 字串寫上去,

後面用 .+ 找任意字元,直到遇到最後的 </p> 為止:

/<p>s*<script src=”//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js.+</p>/

 

先按下 Search 鈕看看…

找到了非常多筆記錄,而且找到的的確是 AdSense 的 script 部分

(建議至少大略瀏覽過,確認找到的都是符合預期,以免之後取代完無法反悔):

 

因為我是要把這段 script 拔掉,因此 Replace pattern 的部分留空就好。

這時可以按下 Replace 按鈕「預覽」修改後的結果,

看看是不是符合預期 (別擔心,按下 Replace & Save 鈕才會真的修改資料)~

 

3. 備份現有的 WordPress 資料庫

建議在大規模取代之後,先備份現在的 WordPress 資料庫,

這樣改壞了還有機會救回來~

像我現在是用 UpdraftPlus Backup and Restore 這套很不錯用的外掛來備份~

 

4.  取代字串

備份完成,也確認 Search Regex 搜尋出的結果都符合預期後,

就可以按下 Replace & Save 真正對資料庫的內容做修改了~

 

最後再來檢驗一下成果…

隨意點一篇舊的文章,果真之前有重覆廣告的部分,

現在都只剩下 AD Inserter 插入的廣告了,

之前之前寫在文章裡的廣告 script 都消失囉~

 

這個外掛真的是非常好用,強力推薦呀~^^

 

(本頁面已被瀏覽過 783 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料