【WordPress】ある特定の文字列が自動変換されるのを停止する!

特定の文字列が自動変換される件について

今更ながらですが、WordPressで文字列が自動的に変換される対策を行ってみました。

WordPressのデフォルトの仕様として、WordPressの編集画面である特定の文字列を入力すると、その入力した文字列が別の文字列に変換されてしまいます。

自動変換される文字列の一例

一例として以下の文字列が変換されています(WordPress Codex日本語版から抜粋) 

元のテキスト 変換されたテキスト シンボル名
"---" "—" em ダッシュ
" -- " "—" em ダッシュ
"--" "–" en ダッシュ
" - " "–" en ダッシュ
"..." "…" 省略記号
`` 開始引用符
"hello “hello 開始引用符
'hello ‘hello 開始引用符
'' 終了引用符
world." world.” 終了引用符
world.' world.’ 終了引用符
" (tm)" " ™" 商標記号
1234" 1234″ ダブルプライム記号
1234' 1234′ プライム記号
'99 ’99 西暦の省略表現前のアポストロフィ
Webster's Webster’s アポストロフィ
1234x1234 1234×1234 乗算記号

特定の文字列が自動変換される原因

これら特定の文字列が自動変換される原因は、「wptexturize」「convert_chars」の2種類のフォーマット用関数が不正な文字として判断し変換しているためです。

特定の文字列が自動変換される対策

これらの文字列を変換させないようにするために「functions.php」ファイルに下記のソースを追記します(WordPress 4.0.0以降対応)。

add_filter( 'run_wptexturize', '__return_false' );

これで、正常に表示されるようになりました( ^o^)ノ