WordPressで勝手に文字が変換されるのを防ぐ方法 【クォーテーションが全角に】

wordpress-3.3.1-jaで確認しました。WP2.6あたりの時も同じ手法が使えてはいました。

特定の文字が勝手に変換されて表示される

・WordPressで「”」(ダブルクォーテーション)が全角に
・WordPressで「’」(シングルクォーテーション)が全角に
ほかにもあるみたいだけど、
プログラムのソースやHTMLのソースを表示するブログにとっては迷惑なんですね。

よく分からない初心者が、そのままコピペして貼り付けて、動きませんという報告をコメントなどにしてくれるので、親切で記事を書いていても、逆にあだになったり、信用?を失ったり・・

対策する方法は3つあります。最初に説明する物ほど、僕がおすすめできる方法です。


変換を停止するプラグインを使用する方法

Disable wptexturize
http://www.jasonlitka.com/2007/09/25/wordpress-plugin-disable-wptexturize/

古いプラグインですが、Wordpress3.3でも問題なく動作します。
プラグインを有効にするだけというお手軽さがあります。


テンプレート(テーマ)に以下のコードを加える方法

使用しているテンプレートの中に、functions.phpがあると思います。なければ新規に作成してください。
以下のコードをfunctions.phpを一番上に追加します。
<?php
 remove_filter('the_excerpt',  'wptexturize'); // 抜粋の自動置換を無効
  remove_filter('the_title',    'wptexturize'); // 記事タイトルの自動置換を無効
  remove_filter('the_content',  'wptexturize'); // 本文の自動置換を無効
?>
この方法は、Disable wptexturizeのプラグインがやってることと全く同じです。
参考記事:「”」(ダブルクォーテーション)が全角に変換される « WordPress小技集


wp-includes/formatting.phpを修正する方法
$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

//$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
に変更する。

コメントアウトすると言います。//から始まる行はPHPではコメントとして扱われて、実際には実行されないという性質を用いています。コメントアウトすることで、この行を実行させないことで、勝手に文字を変換されないようになるわけですね。

これは個人的にはあまりおすすめしないけど、これを紹介してるページが多いので念のため書いておきます。

【ブログ内で関連ある記事】

スポンサーリンク

コメントを残す

メールアドレスは公開されません。
また、コメント欄には、必ず日本語を含めてください(スパム対策)。