WordPressでクォーテーションマークが全角になってしまう件

投稿者: | 2011年12月22日

先の記事に記載したPHPのコードは、ちゃんと動いたプログラムをコピペしたものですが、それを更にコピペして別のページでプログラムを動かそうとすると、何故か上手くいきません(^^;

よく見ると、どうも「’」(シングルクォーテーションマーク)とか「,」(カンマ)が元のものと違っています。これはWordPressに投稿⇛表示した過程で、書き換えられたと言うことでしょう。さてはTiny-MCEの仕業か?

ネットで検索すると、WordPressがシングル及びダブルクォーテーションマークを勝手に全角にしてしまうそうです。そう言えば、人のサイトからコードをコピペして、クォーテーションマークがおかしかった事がありました。

対策はというと、wp-includesフォルダ内のformatting.phpというファイルの中に

$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

という一文があるので、それをコメントアウトして無効化する、と言うことらしいです。⇛参考サイト

この文はもしかして、サニタイズ関連?本来はイジらない方が良いのかも知れませんが、皆定番パッチのようにやってるのでまあいいかと(^^・・・結果は半角のクォーテーションのまま、原文通り表示されるようになりました。

という訳で、既に当ブログからコードをコピペした方は、修正をお願いします。もう気づいて直してるかも知れませんが。

おまけ

ここからは余談というか、僕の失敗談を・・・

僕が最初に見たメージには、問題の文が69行目にあると書いてあり、自分のローカルファイルを見ると確かにそこにあったので、コメントアウトしてアップロードしました。

すると何と、エラーが出てサイトが表示されなくなってしまいました!慌てて元に戻して、再びアップしましたが治りません(ToT エラーメッセージで問題発生箇所が表示されますが、チェックするとそんな行は無い!(そんなに多くない)

ここまで書けば、賢明な読者なら何が起きたかピンとくるでしょう。そう、僕はローカルにあった古いファイルをアップロードしてしまったのです。

WordPressの便利な機能として、管理画面でシステムの自動アップデートが出来ます。それで僕は最新のWordPress3.3までアップデートしていたのですが、ローカルにあるファイルはヴァージョン2.xで止まっていたのです!だからコメントアウト部分の問題じゃなく、ファイルの内容が全然違うと。

そこで、WordPressのサイトから最新のシステムをダウンロードし、formatting.phpファイルを抜き出してサーバーにアップしました。これで目出度く元通りという訳です。今回はこれで済みましたが、もしこれが設定変更で書き換わるようなファイルだったら、新品をアップしても元には戻りませんからね。

因みに、問題の一文の何行目にあるかは、WordPressのバージョンによって違います。上述の参考ページにちゃんと書いてあります⇓

WP2.6は34行目
WP2.7は60行目
WP2.8は69行目
WP2.9は82行目
WP3.3は87行目

もし最初にこれを見ていたら、おかしいと気づいたかも知れませんが・・・

教訓としては自動アップデートは便利ですが、ローカルからのアップロードはNGと言うことですね。逆に全部ダウンロードしておくべきなんでしょうが、ファイルの量が多すぎて途中で止まりそう・・・

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です