最近一直都比較忙,所以也沒(méi)有時(shí)間接各種各樣的需求,wordpress 折騰得也少了,現(xiàn)在 wordpress 都已經(jīng)升級(jí)到 3.2.1 了,那些最新的功能啊、函數(shù)啊都還沒(méi)有玩過(guò),有點(diǎn)脫節(jié),只能拿一些小問(wèn)題但比較實(shí)用的方法出來(lái)分享給大家。
今天有一個(gè)朋友問(wèn)了我一個(gè)關(guān)于 wordpress 的問(wèn)題,需求的背景是這樣的,在他的博客文章里曾經(jīng)插入了很多指向到 discuz 論壇的鏈接,然而,自從那個(gè) discuz 論壇升級(jí)到 x2 以后,鏈接地址都改變了,導(dǎo)致之前在 wordpress 中插入的論壇鏈接都失效了。面對(duì)這樣的問(wèn)題,我認(rèn)為有兩種解決方案,一是從 discuz 論壇下手,做 301 重定向,把舊的鏈接引向新地址;二是從 wordpress 下手,批量修改文中已經(jīng)存在的鏈接地址。
當(dāng)然,我在這里選擇從 wordpress 下手,從 wordpress 下手也可以有兩種方法。一是從數(shù)據(jù)庫(kù)下手,二是從 wordpress 主題下手,我一一來(lái)介紹一下。
一、從數(shù)據(jù)庫(kù)下手
在數(shù)據(jù)庫(kù)里批量替換的方法以前有介紹過(guò),這里再重溫一下,進(jìn)入 phpmyadmin,找到你的數(shù)據(jù)表,先備份,然后運(yùn)行 sql,輸入以下語(yǔ)句即可:
update wp_posts set post_content = replace(post_content, 'old','new');
其中 old 是舊的字符串,new 是你要替換的文字。
二、從 wordpress 主題下手
在 wordpress 主題的 functions.php 中插入以下代碼:
function content_str_replace($content = ''){
$content = str_replace('old', 'new', $content);
return $content;
}
add_filter('the_content', 'content_str_replace', 10);
和之前一樣,其中 old 是舊的字符串,new 是你要替換的文字。
兩個(gè)方法都很簡(jiǎn)單,但是各有各的特點(diǎn)。
從數(shù)據(jù)庫(kù)下手的話,優(yōu)點(diǎn)就是一勞永逸,徹底替換所有文字內(nèi)容,但是對(duì)于不熟悉數(shù)據(jù)庫(kù)的朋友還是不推薦冒然操作數(shù)據(jù)庫(kù),就怕一失足成千骨恨。
從 wordpress 下手的話,優(yōu)點(diǎn)就是安全,再不濟(jì)也就是把主題改壞了,重新上傳一下就 ok,但是在性能方法就比數(shù)據(jù)庫(kù)操作要差一些,因?yàn)槊看螢g覽文章都必須在后臺(tái)進(jìn)行一次替換的操作。
所以,到底選擇哪個(gè)方法,就需要看官們自己衡量了。