WordPressでハイフンの連続(2個のハイフン)”--“が1個のハイフン”-“に自動変換される

WordPress
スポンサーリンク

過去の自分の記事を読み直していると、

 

ハイフンの連続(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

 

wptexturize() – Function | Developer.WordPress.org
Replaces common plain text characters with formatted entities.

からの引用

 

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で半角のダブルクオーテーション " が自動的に(勝手に)全角に変換されてしまいます。 原因を調べてみました。 半角のダブルクオーテーション " が自動的に(勝手に)全角に変換されてしまう原因 どうやら原因はWor...

 

WordPressのおすすめ本

 

↓WordPressのおすすめ本はコチラ

WordPressのおすすめ本

 

 

コメント

  1. […] こちらのページを参考にさせていただきました。詳しく説明を確認したい方はリンクから確認お願いします。 […]

  2. […] WordPressでハイフンの連続(2個のハイフン)”–“が1個のハイフン”-… […]

  3. […] Web サイト> (1) 株式会社オンズのブログです (2) 浦下.com 〜ITエンジニアの備忘録〜 (3) WordPress Codex […]

タイトルとURLをコピーしました