WordPressで引用符が勝手に変換されないようにする方法
WordPressで引用符(クォーテーション)を使うと、勝手に意図しない文字に変換されてしまいますが、これ結構鬱陶しいですよね。
具体的にはこんな感じです。
"ふがふが" ⇒ “ふがふが”
よく見ないと気づきにくいですが、勝手に引用符が開始引用符と終了引用符に変換されてしまうのです。
確かに文章としての見栄えはよくなるんですけど、プログラムのソースコードやHTMLソースなどを載せる場合など、引用符をステキな感じにされてしまうと、そのままコピペして使おうとすると、エラーが多発したり、引用符の中身が正しく判定されないので意図しない動きになってしまうのです。
コピーした人が気付いたとしても毎回置換しないと使えませんし、ビギナーだったら何でエラーが出てるのか意味がわからないかもしれない。そもそも使っているフォントによっては開始と終了を全く区別できないようなものもあるかもしれません。そのまま使えないサンプルソースなんて、公開してもあまり喜んでもらえないでしょうし。
どうもこのステキ変換はWordPressの標準機能らしく、正直おせっかいもいいところです。僕が最初この現象に気付いた時、全く意味がわからず、その理不尽さに悔し涙を流したのは今となってはいい思い出です(泣いてません)
というわけで、これを無効化する方法を探しました。
プラグインをインストールして解決!
こちらのブログを参考に…というか、これでほぼ解決ですが(笑)
WordPressで勝手に文字が変換されるのを防ぐ方法 【クォーテーションが全角に】 | 某氏のたわごと NEXT
こちらでは Disable wptexturize プラグインを使う方法が紹介されています。WordPress 3.3で動作確認されていますが(僕も 3.4 で動作を確認しました)、5年前にリリースされたプラグインでメンテもされておらず、なによりWordPressの管理画面からインストールできないので地味に面倒です。
他のプラグインがないか探してみたところ、Quotmarks Replacer(掲載時v2.6.5) というプラグインがありました。やってることはだいたい一緒ですが、管理画面からプラグインのインストールが可能("Quotmarks Replacer"で検索)で、Disable wptexturize よりも多くの箇所での変換無効化を行なってくれます。
Disable wptexturize では記事の the_title(タイトル)、the_content(本文)、the_excerpt(抜粋)の3つだけ無効化を行いますが、Quotmarks Replacer では comment_text(コメント)や category_description(カテゴリ説明)など、他の箇所も同様に無効化してくれます。
結局のところ、wp-includes/formatting.php 内の wptexturize() という関数でこの余計なこと変換が行われているようで、これを使っているフィルターフックを無効化することで解決となります。上記のプラグインたちも中身は実にシンプルで、フィルターフックの無効化を行なっているだけですね。
そんなわけで、functions.php に以下のような記述を加える方法もあります。
remove_filter('the_title', 'wptexturize'); remove_filter('the_content', 'wptexturize'); remove_filter('the_excerpt', 'wptexturize');
ちなみにこれは Disable wptexturize で無効化している3ヶ所だけです。万全を期すなら Quotmarks Replacer の qmr.php のarray定義のフック箇所を全部同様に記載しておくと良いかもしれませんが、WordPressの機能をテーマ側で無効化するのは何だか違う気がするので、僕は Quotmarks Replacer プラグインで無効化する方をオススメしておきます。
本当の戦いはこれからだ!
ところで、この記事書いていて、別の問題を見つけました。
MarsEdit で ピリオド "."を3つ並べて書くと勝手に三点リーダ "…" にされてしまう…orz
あと、TMって書くと、勝手に ™ になる…orz
…MarsEdit、お前もか。
僕は「ピリオド3つ」の方はそもそも3点リーダに変換して使うことがほとんどなので実害はないのですが、TMは入力することもありえますからね…
"TMN" みたいに後ろに半角文字を続けて入力した場合はもちろん問題ありません。同様に "TMR" も大丈夫ですが、"T.M.R" と書いたほうが過激に最高だと思います(?)
問題は某多摩ネットワークですね(?) TMの後にスペースを入力した時点で™に変換されてしまうので。この場合、™ を選択状態にして T、M とタイプすれば、傷ついた夢を取り戻すことはできるようです(「修正できます」の意) もしくは、IMEをオンにした状態で "TM NETWORK" と一気に入力すればいいです。
TMと入力できた後は下手にその前後で入力しないほうがいいです。TMの部分が再度™に変換され、メビウスの輪から抜け出せなくて幾つもの罪を繰り返すことになります(「二度手間、三度手間になります」の意)
今のところこの変換を行わないようにする方法が見つからず。もし、解決方法知ってる方いたら教えていただければ嬉しいです。
意識してない時に変換されるかもなので、むしろこっちのMarsEditの勝手変換のほうが鬱陶しいかも…
MarsEdit - the blog editor for WordPress, Tumblr, Blogger and more.
カテゴリ: ソーシャルネットワーキング
価格: ¥3,450(掲載時)