ネクストベータ代表Blog

WEBシステム SI屋の代表のブログです。

*

関数 wp_magic_quotes()

      2014/11/22

WordPress のマジッククオート

定義ファイル :/blog/wp-includes/load.php

WordPress によって強制的に外部入力は無条件に magic quotes される。
PHP設定は無関係。

プレーンな値を直接取得する方法は無いようです。
プレーンな入力値が必要な時は、stripslashes() を使うようです。

stripslashes — クォートされた文字列のクォート部分を取り除く
stripslashes()

外部リンク

WordPress でプラグインを書こうとしたら、$_POST とか $_GET とか使うことになると思います。

ところが、これらの外部入力は無条件に magic quotes されています。
しかも、WordPress によって。PHP 関係なしで。

また、プレーンな値を直接取得する方法も無いようです。
で、プレーンな入力値が必要な時は、stripslashes です。

ちょっとびっくりしましたが、これも WordPress の流儀。
WordPress 始めたばっかりのプログラマ側の人はびっくりするかも知れないと思ってのメモでした。
詳細

最初、まさか php がマジッククオート ON なのか? と思ったりして php.ini とか見たり、.htaccess 見たりしてけれど、magic qoutes なんてされてません。もちろん、get_magic_quotes_gpc() で確認しても、大丈夫、ちゃんとオフ。

なぜー? なんでー?! (?_?)

まさかと思いつつ、WordPress のコードを彷徨ったら、load.php の中に次の関数を見つけました。

これは WordPress の流儀のようです。

では、プレーンな値が欲しい時はどうするのか?
これが調べてもそれらしい情報が出てこなかったのですが、Twitter で @horike37 さんがビシッと教えてくれました。

自動でシングルコートつけてきよるのでstripslashesするしかない!

とのこと。

潔いですね。というか、html escape がデフォルトのテンプレートエンジンと同じじゃないか、合理的じゃないか、ということで、納得しておきます!

http://foreignkey.jp/archives/99

 - 関数