WordPress 關閉 wptexturize 功能避免符號被轉換

WordPress 會自動轉換一些符號,例如 "--" 會顯示成 "–" ,由於我會在部落格裡放 bash 語法,裡面一定會有 "--help" 這種字串,不解決會十分困擾。

查到的原因是 wptexturize 方法導致,雖然放在 pre, code, kbd, style, script, tt 標籤內的內容將會忽略而不會觸發 wptexturize 方法,但是這樣就會改變排版。

 

以下是變換前變換後的對照

"---"
"—"

" -- "
"—"

"--"
"–"

" - "
"–"

"..."
"…"

``

"hello
“hello

'hello
‘hello

''

world."
world.”

world.'
world.’

" (tm)"
" ™"

1234"
1234″

1234'
1234′

'99
’99

Webster's
Webster’s

1234x1234
1234×1234

 

將以下程式碼儲存成 disable-wptexturize.php 上傳放到 /wp-content/plugins 底下,再到後台安裝啟用這個外掛就能解決。


/*
Plugin Name: Remove the wptexturize filter
*/

add_filter( 'run_wptexturize', '__return_false' );

 

參考資料
https://codex.wordpress.org/Function_Reference/wptexturize
https://codex.wordpress.org/Plugin_API/Filter_Reference/run_wptexturize
https://geeksterminal.com/wordpress-double-dash-problem/1399/

發表迴響