説明
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のパラメータを、そのまま取得する(検証が必要) |

コメント