ワードプレスのwp_parse_str関数の使用方法・解説

概要

wp_parse_str 関数は、クエリー文字列を解析して連想配列に格納するために使用される WordPress のコア関数です。主に、URL のクエリー文字列からデータを抽出して、配列形式で利用できるように変換します。この関数は、以下のような機能を実装する際によく使われます。

  1. フォームデータの処理
  2. URL パラメータの解析
  3. クエリ文字列の取得と解析
  4. GET リクエストの処理
  5. Ajax リクエストの処理
  6. リダイレクト先のURLの解析
  7. URLのクエリー部分の管理
  8. プラグインやテーマでのデータ送信処理

構文

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'] が格納される

このサンプルでは、リダイレクト後のページでクエリー文字列を解析しています。

この関数について質問する


上の計算式の答えを入力してください