解決WordPress(WP)文章發(fā)布或者編輯中半角字符自動(dòng)轉(zhuǎn)全角字符的方法

[重要通告]如您遇疑難雜癥,本站支持知識付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!

我們在使用 WordPress 發(fā)布或者編輯文章時(shí),其會自動(dòng)轉(zhuǎn)義一些字符,比如將‘–’轉(zhuǎn)義為‘-’破折號等等,我們也稱“全半角標(biāo)點(diǎn)符號轉(zhuǎn)換”或者“代碼轉(zhuǎn)義”。因?yàn)?WordPress 的安全措施會智能的將源代碼中的所有半角符號自動(dòng)修正為全角符號,可能目的是以防止外部源代碼在網(wǎng)頁上執(zhí)行。

這個(gè)功能所帶來的小麻煩就是在文章編輯中輸入代碼后,前臺網(wǎng)頁上顯示的不是原始代碼而會被自動(dòng)轉(zhuǎn)義,然后再被人使用復(fù)制粘貼后就會有問題(代碼失去作用變成亂碼)。如果你的 WordPress 網(wǎng)站經(jīng)常要分享一些代碼的話,就需要解決 WordPress 中半角全角字符轉(zhuǎn)義的問題。那我們就來說說如何解決這件事情呢?其實(shí)這樣的問題主要是WordPress 模式使用了 wptexturize函數(shù)將純文本字符轉(zhuǎn)換成格式化的 HTML 實(shí)體而已;

第一種解決方法:移除 wptexturize( ) 函數(shù)

在 WordPress 中“作怪”的函數(shù)就是 wptexturize( ) ,(本文最后附此函數(shù)簡單說明)。那么就移除它,將下面的代碼加入當(dāng)前主題的 funtions.php 文件中:

//取消內(nèi)容轉(zhuǎn)義
remove_filter('the_content', 'wptexturize');
//取消摘要轉(zhuǎn)義
remove_filter('the_excerpt', 'wptexturize');
//取消評論轉(zhuǎn)義
remove_filter('comment_text', 'wptexturize');

一般我們只需要添加第一種代碼(取消內(nèi)容轉(zhuǎn)義)取消文章內(nèi)容轉(zhuǎn)義就夠了,很少有人去復(fù)制摘要和評論這些亂七八糟的玩意兒;

第二種方式依然是取消,我們還是需要添加到主題的 functions.php 文件:

//全角轉(zhuǎn)半角,取消轉(zhuǎn)義 
$qmr_work_tags = array(
'the_title', // 標(biāo)題
'the_content', // 內(nèi)容 *
'the_excerpt', // 摘要 *
'single_post_title', // 單篇文章標(biāo)題
'comment_author', // 評論作者
'comment_text', // 評論內(nèi)容 *
'link_description', // 友鏈描述(已棄用,但還很常用)
'bloginfo', // 博客信息
'wp_title', // 網(wǎng)站標(biāo)題
'term_description', // 項(xiàng)目描述
'category_description', // 分類描述
'widget_title', // 小工具標(biāo)題
'widget_text' // 小工具文本
);
foreach ( $qmr_work_tags as $qmr_work_tag ) {
remove_filter ($qmr_work_tag, 'wptexturize');
}

第三種方式:或者修改 WordPress 程序源代碼(wordpress 早期版本源代碼-不推薦)

修改 wordpress 程序根目錄下 wp-includes/formatting.php 文件,把實(shí)現(xiàn)自動(dòng)替換的相關(guān)語句注釋掉。找到:

// static strings
$curl = str_replace($static_characters, $static_replacements, $curl);
// regular expressions
$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

將 $curl 開頭的兩句代碼也用 // 注釋掉就好;不推薦這種方法的原因是每次升級 WordPress 程序后,都需手動(dòng)修改一下源文件。

第四種方法,依然是添加代碼

只需要進(jìn)入wordpress管理后臺,主題文件夾編輯窗口下,找到function.php,然后在文件末尾添加這么一行:

?php remove_filter('the_content', 'wptexturize'); ?>

在其他地方也會用到此函數(shù),因此需要更新上面的代碼:

?php
/*
Plugin Name: 解決半角變?nèi)?
Author URI: http://m.madamerex.com/
*/
$qmr_work_tags = array(
'bloginfo',
'comment_author',
'comment_text',
'list_cats',
'link_name',
'link_description',
'link_notes',
'single_post_title',
'term_name',
'term_description',
'the_title',
'the_content',
'the_excerpt',
'wp_title',
'widget_title'
);

foreach ( $qmr_work_tags as $qmr_work_tag ) {
remove_filter ($qmr_work_tag, 'wptexturize');
}

?>

PS:以上幾種辦法,綜上所述中,其實(shí)就第一種即可,要么就使用第二種,第三種也可以勉強(qiáng)使用,不太推薦第四種,其實(shí)第四種跟第三種是一樣的,只不過升級的時(shí)候不會出現(xiàn)其他問題,僅此而已,以上代碼僅供參考,各位看官有疑問請聯(lián)系博主交流,感覺好,就打賞支持博主吧,教程到此結(jié)束;

問題未解決?付費(fèi)解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信

所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對《免責(zé)聲明》全部內(nèi)容的認(rèn)可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請聯(lián)系站長并出示版權(quán)證明以便刪除。 敬請諒解! 侵權(quán)刪帖/違法舉報(bào)/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評論,如有謬誤,請聯(lián)系指正;轉(zhuǎn)載請注明出處: » 解決WordPress(WP)文章發(fā)布或者編輯中半角字符自動(dòng)轉(zhuǎn)全角字符的方法

2 評論

  1. 這些方法你現(xiàn)在有嘗試過嗎?好像失效了

    1. @grey: 不存在失效,我自己的站就是這么解決的,我站幾乎沒有ctrl+C+V 都是自己測試或者自己心得,你可以看下自己的系統(tǒng)環(huán)境~~

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開發(fā)與維護(hù);網(wǎng)站開發(fā)修改及維護(hù); 各財(cái)務(wù)軟件安裝調(diào)試及注冊服務(wù)(金蝶,用友,管家婆,速達(dá),星宇等);同時(shí)也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情