概要
wp_parse_str
関数は、クエリー文字列を解析して連想配列に格納するために使用される WordPress のコア関数です。主に、URL のクエリー文字列からデータを抽出して、配列形式で利用できるように変換します。この関数は、以下のような機能を実装する際によく使われます。
- フォームデータの処理
- URL パラメータの解析
- クエリ文字列の取得と解析
- GET リクエストの処理
- Ajax リクエストの処理
- リダイレクト先のURLの解析
- URLのクエリー部分の管理
- プラグインやテーマでのデータ送信処理
構文
wp_parse_str( string $string, array &$array )
パラメータ
- $string (string): 解析したいクエリー文字列。
- $array (array): 解析結果を格納するための連想配列。
戻り値
この関数は戻り値を持ちませんが、$array 引数に解析結果を格納します。
関連する関数
この関数を使用可能なバージョン
wp_parse_str
は WordPress 2.0 以来使用可能です。
この関数が含まれるワードプレスのコアファイルのパス
wp-includes/functions.php
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | 〇 |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル 1: URL パラメータの解析
$query_string = 'name=John&age=30&city=Tokyo';
$result = [];
wp_parse_str($query_string, $result);
// $result は ['name' => 'John', 'age' => '30', 'city' => 'Tokyo'] となる
このサンプルコードは、クエリー文字列を解析し、連想配列に格納する基本的な例です。
サンプル 2: GET リクエストの処理
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$query_string = $_SERVER['QUERY_STRING'];
$params = [];
wp_parse_str($query_string, $params);
// $params に GET パラメータが格納される
}
この例では、GET リクエストのパラメータを取得し、連想配列に格納しています。
サンプル 3: Ajax リクエストのデータ処理
function handle_ajax_request() {
$query_string = $_POST['data'];
$data = [];
wp_parse_str($query_string, $data);
// $data には AJAX リクエストから送られたデータが格納される
}
add_action('wp_ajax_my_action', 'handle_ajax_request');
このサンプルコードは、Ajax リクエストの中からデータを解析し格納する方法を示しています。
サンプル 4: フォームデータの解析
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$form_data = $_POST['query'];
$parsed_data = [];
wp_parse_str($form_data, $parsed_data);
// $parsed_data には送信されたフォームデータが格納される
}
このコードは、POST リクエストで送信されたフォームのデータを解析して、連想配列に格納する例です。
サンプル 5: リダイレクトによるパラメータの受け取り
header("Location: /page.php?ref=123&source=abc");
exit;
リダイレクト後、別のページで以下のようにパラメータを受け取ることができます。
$query_string = $_SERVER['QUERY_STRING'];
$params = [];
wp_parse_str($query_string, $params);
// $params には ['ref' => '123', 'source' => 'abc'] が格納される
このサンプルでは、リダイレクト後のページでクエリー文字列を解析しています。