【現象】
--rootといったように連続したハイフンを入力して投稿すると–rootというように変換される。
【関係する場所】
- 記事の投稿編集画面
- 投稿後の記事ページ
【原因分析】
- この部分のHtmlコードは–rootとなっている。
--rootと入力したものが–rootに変換され—rootと表示されている。 - 変換しているファイルはwp-includes/formatting.php、関数はwptexturize()。
- 該当部分のソースコード
$static_characters = array_merge(array('---', ' -- ', '--', ' - ', 'xn–', '...', '``', '\'\'', ' (tm)'), $cockney); $static_replacements = array_merge(array('—', ' — ', '–', ' – ', 'xn--', '…', $opening_quote, $closing_quote, ' ™'), $cockneyreplace);
【対策】
- formatting.phpのソースコードを改変する
これやってはまりました。このページなどを参考にやってみましたがうまくいかず、あちこちでエラーが発生するようになってしまい、しまいにはWPがうまく動かなくなってしまいました。ソースコード自体をいじるのはちょっと危険かなぁと。(自動)アップグレードのたびに変更するのもいまいちだし。 - <pre>タグで囲む
これならそのまま変換されずに表示されます。 - 自分で文字実体参照に変換してから投稿する
「-(ハイフン」)」の文字実体参照は「-」なので、--rootと入力する場合は「--root」と入力するようにする。