概要
remove_query_arg
関数は、クエリーURIから特定のパラメータを削除するための便利な関数です。この関数は、URLのクエリ文字列から不要な引数を取り除く際によく使用されます。よく使われるシナリオは以下のとおりです。
- ページネーションの作成時に、
paged
パラメータを削除する。 - フィルター機能を実装し、ユーザーが選択した条件をURLから取り除く。
- フォーム送信後にクエリストリングを整理し、リダイレクトを行う。
- URLのクリーンアップを行い、SEO対策としてのパラメータ除去。
- 特定の検索条件を除外して再検索を行う際のURL管理。
- アプリ内設定を変更した際にURLから設定を削除する。
- リストから不要なパラメータを取り除き、ユーザビリティを向上させる。
- 認証やセキュリティ上の理由で感敏な情報を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
この例では、foo
とbaz
の両方のパラメータを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にしています。