ホームページ  >  記事  >  バックエンド開発  >  マジック クオートを無効にした後も WordPress がデータをエスケープするのはなぜですか?

マジック クオートを無効にした後も WordPress がデータをエスケープするのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-29 06:56:02316ブラウズ

Why is WordPress Still Escaping Data After Disabling Magic Quotes?

マジック クオートが無効になっている WordPress の自動エスケープの問題

PHP の設定でマジック クオートを無効にしているにもかかわらず、WordPress は POST データを自動的にエスケープし続けます。特に一重引用符。この不可解な動作は、開発者をしばしば困惑させてきました。

原因と解決策

根本的な原因は、WordPress のブートストラップ プロセス内にあります。 WordPress は、マルチサイト機能がアクティブな場合に自動エスケープを開始します。これを解決するには、WordPress がブートストラップされる前に次のコードを追加します。

<code class="php">$_GET       = array_map('stripslashes_deep', $_GET);
$_POST      = array_map('stripslashes_deep', $_POST);
$_COOKIE    = array_map('stripslashes_deep', $_COOKIE);
$_SERVER    = array_map('stripslashes_deep', $_SERVER);
$_REQUEST   = array_map('stripslashes_deep', $_REQUEST);</code>

このコードは、自動エスケープが発生する前に WordPress のリクエスト オブジェクトからスラッシュを削除します。

代替アプローチ

stripslashes_deep は問題に効果的に対処しますが、次の代替アプローチを検討してください:

  • 「ローカルでストリップ」を使用する: 特定の POST データ要素からのみスラッシュを削除します。例: $post = array_map('stripslashes_deep', $_POST);
  • WordPress の自動エスケープを無効にする: Add define('AUTOMATIC_ESCAPING_DISABLED', true); WordPress 設定ファイル (wp-config.php) に追加します。これにより自動エスケープが無効になりますが、使用には注意が必要です。

以上がマジック クオートを無効にした後も WordPress がデータをエスケープするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。