get_query_var()を使ってページ番号を取得する。ちょっとした注意点が
便利なwordpress関数get_query_var()を使ってページ番号を取得する方法です。ページ番号の取得は難しくありませんが、wordpressの仕様でページ番号1が0となっている点に注意が必要です。
簡単な記述例を記載しているので参考にしてみてください。
wordpress関数 get_query_var()とは
get_query_var($var)
機能:$wp_queryのクエリ変数を取得する
パラメータ:$var 変数名
メインクエリの変数を取得できるwordpress関数です。$varには取得した変数名を入力します。
取得できる変数はたくさんあるので、気になる人は調べて見てください。
参考にしたサイト:https://wemo.tech/2043
取得できるクエリ変数を一覧表にまとめていてとてもわかりやすいです。
ページ番号を取得する
$page_number = get_query_var('paged');
$page_numberは任意に作った変数です。
get_query_var(‘paged’)を使って、任意の変数$page_numberに現在のページ番号を格納しました。
<div><?php echo($page_number); ?></div>
格納されたページ番号を確認して見ましょう。上記コードを適当な場所に貼り付けてみます。
0
0が表示されるというところが注意が必要なポイントです。
1ページは0が格納される
wordpressの仕様として1ページ目のクエリ変数’paged’には1ではなく、0が格納されます。
ページ番号を出力させた場合は以下のように記述します。
$page_number = get_query_var('paged');
$page_number = $page_number == 0 ? '1' : $page_number;
1行目でページ番号を取得して、2行目で取得したページ番号を判別させています。
取得したページ番号が0なら1を、0以外ならそのまま格納という三項演算子という書き方を使っています。
これを使うことでページ番号を出力できます。
トップページにページャーを使っている場合に応用できる
ブログサイトなどでよくあるトップページにページャーをつけているサイトで応用ができます。
トップページに画像をつけていて、2ページに移動すると2ページ目なのにまたトップ画像が表示されてしまう。
個人の好みな部分ではありますが、2ページ目にトップ画像はいらないという人はget_query_var(‘paged’)を使って非表示にできます。
<?php
$page_number = get_query_var('paged');
if ( $page_number == 0 ):
?>
<img src=*** >
<?php
endif;
?>
変数$page_numberに0が格納されているか確認して、次のimgを表示するか判断している例です。
ページ番号に応じて表示を変える記述はさまざまな場面で使いますね。
まとめ
get_query_var()はとても便利なwordpress関数でページ番号以外にもさまざまな値を取得できます。
作成するページ内容によって、パラメータを変えてクエリ変数を取得すると良いでしょう。