WordPressで連続したハイフンを表示させる方法FC2ブログからワードプレスへ移転する方法WordPressで連続したハイフンを表示させる方法FC2ブログからWordpressへ移転した歳に、色々とトラブルに遭う。今回は、Wordpressのハイフン(-)問題を解決する方法をい紹介する。注意:このページで紹介する方法の試す前に、「WordPressの自動変換を中止するカスタマイズ方法」を参考にしてください。リンク先で紹介する方法は、functions.phpをカスタマイズするだけなので、簡単です。Wordpressには、連続するハイフンを省略したり、ハイフンを特殊文字「エンダッシュ」に自動変換する問題がある。ハイフン(-)とエンダッシュ(–)の2つは、同じ横棒なので見た目では区別がつきいため、ブログの文章を読むだけなら、問題は無い。エンダッシュとハイフンは違うため、ソースコードを取り扱う記事などでは問題が発生する。ユーザーがソースをコピー&ペースト(コピペ)で、ソースコードを利用できないのである。私の環境では、ソースをコピー&ペーストすると、エンダッシュが全て文字化けしてしまった。したがって、Wordpressの自動置換を止めておく必要がある。Wordpressにハイフン問題を解決する方法は3つある。HTMLの<pre>タグを使う。文字参照の「&#45;」を使う。/wp-includes/formatting.phpを書き換える。1番は、HTMLの<pre>タグを使う方法である。<pre>は、「そのまま表示する」という意味のHTMLで、ソースコードや文字参照などを表示する時に使用するHTMLのタグである。「<pre>----</pre>」というふうに、ハイフンを<pre>タグで囲えば、Wordpressでもハイフンが表示できる。<pre>はそのまま表示するタグなので、手動で改行を入れなければ、画面の右端へ行っても自動改行はしてくれないという問題もある。ブロック要素なので、文章内では使えないなどの問題もある。注釈:改行の問題はCSSで解決できる。2番は特殊文字コード(文字参照)を使う方法である。ハイフンのコードは、「&#45;」なので、ハイフンを「&#45;」に置換すれば、Wordpressでもハイフンが表示できる。テキストエディタの全置換で一気に置き換えてしまえば良いので、特殊文字のコードを使う方法が適しているのではないかと思う。ちなみに、Wordpressが勝手に置き換えるエンダッシュの参照文字は「&#8211;」「&#8212;」である。3番の方法は、Wordpressがハイフンをエンダッシュに置き換えるのを止める方法である。自動書き換えを止めるには、「wp-includes」フォルダ内のformatting.phpを書き換える必要がある。formatting.phpの57行目に下記のコードがある。(これはWordpress3.1で確認したので、バージョンが異なれば、ファイル名や行数が異なる可能性がある。$cockneyreplace);「—」と「–」の2つがエンダッシュを表示する特殊文字コードなので、この2つをハイフンの特殊文字コード「-」に置き換えると、次のようになる。「&#8212;」と「&#8211;」の2つがエンダッシュを表示する特殊文字コードなので、この2つをハイフンの特殊文字コード「&#45;」に置き換えると、次のようになる。$cockneyreplace);「&#45;」が連続しているのは、Wordpressが連続したハイフンを勝手に省略するのを防ぐためである。3番の方法は、コアファイルを変更しているので、Wordpressをアップデートする度に書き換えなければならない。コアファイルを書き換えることは推奨されていないため、冒頭でも紹介したとおり、今回の方法を試す前に、functions.phpをカスタマイズする「WordPressの自動置換を中止するカスタマイズ方法」を試すことをお勧めします。