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

概要

remove_query_arg 関数は、クエリーURIから特定のパラメータを削除するための便利な関数です。この関数は、URLのクエリ文字列から不要な引数を取り除く際によく使用されます。よく使われるシナリオは以下のとおりです。

  1. ページネーションの作成時に、paged パラメータを削除する。
  2. フィルター機能を実装し、ユーザーが選択した条件をURLから取り除く。
  3. フォーム送信後にクエリストリングを整理し、リダイレクトを行う。
  4. URLのクリーンアップを行い、SEO対策としてのパラメータ除去。
  5. 特定の検索条件を除外して再検索を行う際のURL管理。
  6. アプリ内設定を変更した際にURLから設定を削除する。
  7. リストから不要なパラメータを取り除き、ユーザビリティを向上させる。
  8. 認証やセキュリティ上の理由で感敏な情報をURLから隠す。

構文

remove_query_arg( string|array $keys, string $url = '' )

パラメータ

  • $keys (string|array) : 削除するクエリ引数の名称または名称の配列。
  • $url (string) : クエリ引数を削除したいURL。指定しない場合は、現在のリクエストのURLが使用される。

戻り値

  • (string) : 指定されたパラメータが削除されたURL。

関連する関数

使用可能なバージョン

  • remove_query_arg は WordPress 2.8.0 から利用可能です。

コアファイルのパス

  • wp-includes/query.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 = 'https://example.com/page?foo=bar&baz=qux';
$new_url = remove_query_arg('foo', $url);
// 結果: https://example.com/page?baz=qux

このコードは、指定したURLからfooというクエリパラメータを削除しています。

サンプルコード2: 複数のパラメータを削除

$url = 'https://example.com/page?foo=bar&baz=qux&quux=corge';
$new_url = remove_query_arg(['foo', 'baz'], $url);
// 結果: https://example.com/page?quux=corge

この例では、foobazの両方のパラメータをURLから削除しています。

サンプルコード3: 現在のURLからパラメータを削除

if (isset($_GET['foo'])) {
    $new_url = remove_query_arg('foo');
    wp_redirect($new_url);
    exit;
}

このコードは、現在のリクエストからfooパラメータを削除し、新しいURLにリダイレクトします。

サンプルコード4: URLのクリーンアップ

$current_url = home_url(add_query_arg(array()));
$new_url = remove_query_arg('search', $current_url);
// 検索結果のクリーンなURLを生成

ここでは、WordPressのホームURLに基づいて、searchパラメータを削除し、クリーンなURLを生成しています。

サンプルコード5: SEOに配慮したリダイレクト

function clean_up_url() {
    if (isset($_GET['utm_source'])) {
        $new_url = remove_query_arg('utm_source');
        wp_redirect($new_url, 301);
        exit;
    }
}
add_action('template_redirect', 'clean_up_url');

このコードスニペットでは、特定のクエリパラメータ(utm_source)が含まれる場合に、リダイレクトを行いクリーンなURLにしています。

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


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