過去の自分の記事を読み直していると、
ハイフンの連続(2個のハイフン) ”--“ が
1個のハイフン ”-“
に自動変換されていることを発見しました。
原因を調べてみると、どうやらWordPressには、自動変換機能というものが働いているようです。
WordPressの自動変換はwptexturizeとconvert_charsという2つの関数で実行されるようです。
この2つの関数の中でも、ハイフンの連続を1個にしてしまうのは、wptexturizeという関数で行われています。
wptexturizeの変換
wptexturizeで行われる変換は以下の通りです。
変換前 変換後 シンボル記号
"---" "—" em-dash
" -- " "—" em-dash
"--" "–" en-dash
" - " "–" en-dash
"..." "…" ellipsis
“ opening quote
"hello “hello opening quote
'hello ‘hello opening quote
'' ” closing quote
world." world.” closing quote
world.' world.’ closing quote
" (tm)" " ™" trademark symbol
1234" 1234″ double prime symbol
1234' 1234′ prime symbol
'99 ’99 apostrophe before abbreviated year
Webster's Webster’s apostrophe in a word
1234x1234 1234×1234 multiplication symbol
からの引用
convert_charsの変換
一方、convert_charsは次の変換を行います。
- メタデータタグ<title>と<category>が削除されます。
- <br>と<hr>が正しいXHTMLに変換されます。
- Unicodeの文字がただし範囲に変換されます。
wptexturizeによる自動変換を止める方法
自動変換機能の動作は悩ましいです。
デフォルトで自動変換機能が働いているなら、恐らくは多くの人には有用であると開発者は思って導入しているはずです。
悩みましたが、convert_charsはそのままにしておいてwptexturizeだけは機能をオフにすることにしました。
wptexturizeをオフにするにはfunctions.phpに以下のコードを追加します。
remove_filter('the_content', 'wptexturize');
このようにしておくとcontentのページについてはwptexturizeの機能がオフになります。
半角ダブルクォーテーション " の自動変換については以下の記事をご覧ください。
WordPressのおすすめ本
↓WordPressのおすすめ本はコチラ
コメント
[…] こちらのページを参考にさせていただきました。詳しく説明を確認したい方はリンクから確認お願いします。 […]
[…] WordPressでハイフンの連続(2個のハイフン)”–“が1個のハイフン”-… […]
[…] Web サイト> (1) 株式会社オンズのブログです (2) 浦下.com 〜ITエンジニアの備忘録〜 (3) WordPress Codex […]