remove_query_arg() の使い方|説明・引数・注意点

説明

remove_query_arg() は、URLから、指定したクエリパラメーターを取り除く関数です。

基本構文

remove_query_arg( string|string[] $key, string|false $query = false ): string

引数

  • $key:削除するキー
  • $query:対象のURL

戻り値

パラメーターを除いたURL。

使い方(サンプル)

$url = remove_query_arg( 'tab', $url );

注意点

  • 出力時は esc_url() を通します。

実務での使いどころ

  • URLから、クエリのパラメータ(ページ番号、並び替えなど)を、取り除くとき。
  • 複数のパラメータを、配列でまとめて、削除するとき。

よくあるミスと対処

  • $query を省略すると、現在のURLが、基準になる。URLに含まれる、入力値が、そのまま出力され、XSSの原因になる。出力するときは、必ず esc_url() を通す。
  • パラメータを、追加したいのに、これを使っている。追加は、add_query_arg()。

NG例

echo '<a href="' . remove_query_arg( 'sort' ) . '">解除</a>'; // 現在のURLが基準で、エスケープもない

OK例

echo '<a href="' . esc_url( remove_query_arg( 'sort', get_permalink() ) ) . '">解除</a>';

使い分け早見表

関数 役割
remove_query_arg() パラメータを、削除する
add_query_arg() パラメータを、追加・更新する
esc_url() URLを、出力用にエスケープする

関連項目

add_query_arg()、esc_url()

公式リファレンス:remove_query_arg() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました