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/