概要
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にしています。