説明
add_query_arg() は、URLにクエリパラメーターを追加する関数です。
基本構文
add_query_arg( string|array $key, string|int|null $value_or_uri, string $uri = '' ): string
引数
$key:キー(または連想配列)$value_or_uri:値(またはURI)$uri:対象のURL
戻り値
クエリ付きのURL。
使い方(サンプル)
$url = add_query_arg( 'tab', 'settings', admin_url( 'admin.php?page=my-page' ) );
注意点
- 出力時は
esc_url()を通します。XSS(スクリプト混入)の原因になりやすい関数です。 - 既存のキーは上書きされます。
実務での使いどころ
- URLに、クエリのパラメータ(並び替え、絞り込みなど)を、追加・更新するとき。
- 現在のURLを、基準に、リンクを作るとき。
よくあるミスと対処
$urlを省略すると、現在のURLが、基準になる。URLに含まれる、入力値が、そのまま出力され、クロスサイトスクリプティング(XSS)の原因になる。出力するときは、必ずesc_url()を通す。- 出力時に、エスケープしていない。
- パラメータを、削除したいのに、これを使っている。削除は、
remove_query_arg()。
NG例
echo '<a href="' . add_query_arg( 'sort', 'date' ) . '">日付順</a>'; // 現在のURLが基準で、エスケープもない
OK例
echo '<a href="' . esc_url( add_query_arg( 'sort', 'date', get_permalink() ) ) . '">日付順</a>';
使い分け早見表
| 関数 | 役割 |
|---|---|
add_query_arg() |
パラメータを、追加・更新する |
remove_query_arg() |
パラメータを、削除する |
esc_url() |
URLを、出力用にエスケープする |
関連項目
公式リファレンス:add_query_arg() | Function | WordPress Developer Resources

コメント