URL に ?key=value の形のパラメーターを足したり、値を替えたりします。もう同じ名前があれば上書きします。
書き方
add_query_arg( string $key, string $value, string $url = '' ): string add_query_arg( array $args, string $url = '' ): string
$key・$value:足す名前と値(1 つだけのとき)$args:名前と値の配列(いくつも足すとき)$url(省略できる):もとの URL。省略すると、今開いているページの URL を使います。
使い方の例
// https://example.com/list/?page=2&sort=new $url = add_query_arg( array( 'page' => 2, 'sort' => 'new', ), home_url( '/list/' ) ); echo '<a href="' . esc_url( $url ) . '">次へ</a>'; // 値に日本語や記号が入るときは自分でエンコードする $url = add_query_arg( 'q', rawurlencode( $keyword ), home_url( '/search/' ) );
よくある間違い
- そのまま出力する:
$urlを省略すると今の URL をもとにするので、URL に入っていた文字が混ざります。出すときは必ずesc_url()を通します。 - 値をエンコードしない:値は自動ではエンコードされません。日本語・
&・#などが入る値はrawurlencode()してから渡します。 - よそのサイトの URL に内部の値を付ける:外のサイトへ渡す URL に、自分のサイトの ID などを付けないようにします。
- パラメーターを消すときは
remove_query_arg()です。
関連する関数
remove_query_arg():パラメーターを消すesc_url():URL を安全にするhome_url():サイトのトップの URL を作る



