_wp_get_allowed_postdata()


WordPressの_wp_get_allowed_postdata()関数は、POSTリクエストから許可されたデータのみを抽出し、配列として返します。セキュリティチェックを行い、不適切なデータをフィルタリングします。

構文

_wp_get_allowed_postdata( array $post_data = array() );
  • $post_data (array) — フィルタリングするPOSTデータの配列。デフォルトは空の配列。

例1: 基本的な使用法

POSTデータから許可されたフィールドのみを取得します。

$filtered_data = _wp_get_allowed_postdata($_POST);

例2: カスタムデータのフィルタリング

特定の配列を渡してフィルタリングします。

$custom_data = array('title' => 'テスト', 'content' => '本文'); $allowed_data = _wp_get_allowed_postdata($custom_data);

例3: 空のデータを処理

空の配列を渡した場合の挙動を確認します。

$empty_data = _wp_get_allowed_postdata(array());

例4: 不正なデータの自動除去

スクリプトタグを含むデータが自動で除去されます。

$unsafe_data = array('script' => '<script>alert();</script>'); $safe_data = _wp_get_allowed_postdata($unsafe_data);

例5: 許可されたキーのみ保持

WordPressのデフォルトで許可されているキーのみが保持されます。

$mixed_data = array('post_title' => '許可', 'unknown_key' => '除去'); $result = _wp_get_allowed_postdata($mixed_data);

例6: フィルタリング後のデータ使用

安全なデータをデータベースに保存します。

$clean_data = _wp_get_allowed_postdata($_POST); wp_insert_post($clean_data);

例7: マルチサイト環境での利用

マルチサイト環境でも同様に動作します。

if (is_multisite()) { $network_data = _wp_get_allowed_postdata($_POST); }

注意点

  • この関数は内部使用を目的としており、直接呼び出す場合は注意が必要です。
  • 常に返り値の検証を行ってください。
  • ユーザー入力を扱う際は、さらに追加のサニタイズを検討してください。

関連機能: