完美解決WordPress對半形符號轉成全形符號的問題

因為WordPress系統本身對於半形符號會自動轉換成全形,如果在網站上張貼程式碼的話會讓語法變得不正確,若您網站專門提供語法給大家的,那語法可能會讓使用者誤以為說你的語法都出問題,無法使用,這其實是一個問題,原因出在wptexturize這個函式,因我們若要解決此問題,就要想辦法讓這個函式停用,這樣顯示上才會正確。

目前常見的方法是透過外掛來解決,以前香腸也是使用外掛,不過能少用外掛就少用外掛,畢竟多載一入一個外掛會比多使用一個function多一點點負擔,這回我們要告訴大家該如何使用remove_filter這個WordPress內建的function來解決這樣的問題,透過這個函式,應該可以解決半形符號自動被轉成全形符號的問題。


之前香腸為了解決標點符號這問題,曾經安裝了Raw HTMLQuotmarks Replacer兩種外掛,但主要是使用後者。前陣子,殺氣跟我講現在WordPress似乎解決半形符號的問題了,不用外掛也可以正常?所以我就半信半疑的撤掉外掛,發現真的正常了,所以現在是沒有使用任何外掛也沒有用任何語法就讓網站順利顯示半形的標點符號。

那為什麼還要寫這篇文章?這應該是大家的疑問。因為這個問題,雖然我自己沒遇到,但是我還是有在一些網站上看到符號還是被轉換,或許是他們沒有更新到最新版的程式,所以問題沒被解決?如果是這樣怎麼辦呢?不想使用外掛的話,我們可以透過語法來解決這樣的問題,因為問出在於wptexturize這個函式,因此我們在儲存網站上任何資料時,必須過濾掉這個函式,只要不套用到,就不會出問題囉!

如果使用Windows Live Writer撰寫,這些特殊符號會被自動轉成HTML Entity,所以不會有全形或半形的問題。

解決內文符號被轉換問題

如果只是針對網站的內容,那其實使用以下這句語法就可以解決問題了。(開啟佈景主題的functions.php加入以下語法)

remove_filter ('single_post_title', 'wptexturize');

 

解決全站符號被轉換問題

如果你想要徹底一點的解決標點符號問題,那麼您可以使用以下語法,將以下語法複製並張貼到當前使用的佈景主題中的functions.php,將語法加入到適當位置,儲存並上傳覆蓋掉即可解決標點符號的問題囉!

】如果使用以下語法,請不要複製先前段語法,因為語法已經整合在一起嚕!

remove_filter ('single_post_title', 'wptexturize');
remove_filter ('bloginfo', 'wptexturize');
remove_filter ('wp_title', 'wptexturize');
remove_filter ('category_description', 'wptexturize');
remove_filter ('list_cats', 'wptexturize');
remove_filter ('comment_author', 'wptexturize');
remove_filter ('comment_text', 'wptexturize');
remove_filter ('the_title', 'wptexturize');
remove_filter ('the_content', 'wptexturize');
remove_filter ('the_excerpt', 'wptexturize');

 

如果您本身沒有這樣的問題或者是覺得被轉換是沒關係,那您可以這些語法。很重要的一點,只要WordPress沒用到的外掛或語法,就不要存在WordPress中,這樣可以讓系統少跑一些東西,網站或許會好一點,這也是優化很重要的一環哦!