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

説明

get_query_var() は、メインクエリのクエリ変数の値を取得する関数です。ページ番号や検索キーワードなどの取得に使います。

基本構文

get_query_var( string $query_var, mixed $default_value = '' ): mixed

引数

  • $query_var:クエリ変数の名前
  • $default_value:値がないときに返す値(既定は空文字)

戻り値

クエリ変数の値。ない場合は $default_value。

使い方(サンプル)

$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;

注意点

  • 独自のクエリ変数をURLから受け取るには、query_vars フィルターで、変数を登録する必要があります。
  • 分割した記事のページ番号は page、一覧のページ番号は paged。
  • 固定ページをフロントページにしているときは、ページ送りに paged ではなく page が使われる。

実務での使いどころ

  • ページ送りで、現在のページ番号を取得するとき。
  • 検索キーワード(s)や、カテゴリー(cat)を取得するとき。

よくあるミスと対処

  • 登録していない独自の変数を、URLに付けて取得しようとして、空になる。
  • paged が、1ページ目で 0 になることを考えていない。
  • $_GET と混同している。取得できるのは、登録済みのクエリ変数だけ。

NG例

$page = get_query_var( 'my_page' ); // 登録していない変数は、取得できない

OK例

add_filter( 'query_vars', function ( $vars ) {
	$vars[] = 'my_page';
	return $vars;
} );

// 登録したあと
$page = get_query_var( 'my_page' );

使い分け早見表

関数 役割
get_query_var() 登録済みのクエリ変数を取得する
get_search_query() 検索キーワードを取得する
$_GET URLのパラメータを、そのまま取得する(検証が必要)

関連項目

get_search_query()、get_queried_object()

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

コメント

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