特定の文字列が自動変換される件について
今更ながらですが、WordPressで文字列が自動的に変換される対策を行ってみました。
WordPressのデフォルトの仕様として、WordPressの編集画面である特定の文字列を入力すると、その入力した文字列が別の文字列に変換されてしまいます。
自動変換される文字列の一例
一例として以下の文字列が変換されています(WordPress Codex日本語版から抜粋)
元のテキスト | 変換されたテキスト | シンボル名 |
“—“ | “—” | em ダッシュ |
” — “ | “—” | em ダッシュ |
“–“ | “–” | en ダッシュ |
” – “ | “–” | en ダッシュ |
“…” | “…” | 省略記号 |
“ | “ | 開始引用符 |
“hello | “hello | 開始引用符 |
‘hello | ‘hello | 開始引用符 |
” | ” | 終了引用符 |
world.” | world.” | 終了引用符 |
world.’ | world.’ | 終了引用符 |
” ™” | ” ™” | 商標記号 |
1234″ | 1234″ | ダブルプライム記号 |
1234′ | 1234′ | プライム記号 |
’99 | ’99 | 西暦の省略表現前のアポストロフィ |
Webster’s | Webster’s | アポストロフィ |
1234×1234 | 1234×1234 | 乗算記号 |
特定の文字列が自動変換される原因
これら特定の文字列が自動変換される原因は、「wptexturize」「convert_chars」の2種類のフォーマット用関数が不正な文字として判断し変換しているためです。
特定の文字列が自動変換される対策
これらの文字列を変換させないようにするために「functions.php」ファイルに下記のソースを追記します(WordPress 4.0.0以降対応)。
add_filter( ‘run_wptexturize’, ‘__return_false’ );
これで、正常に表示されるようになりました( ^o^)ノ