テスト投稿5

WordPressに長く携わっていると、固定ページで一覧表示してページネーションまでしたい、という場面がよく出てきます。
一覧表示はともかく、ページネーションまでしようとなるとひと工夫が必要です。

まず、その固定ページ用の専用テンプレートを作りましょう。
たとえば固定ページのスラッグが arekore だとすると、
WordPressのルールで、page-arekore.php を用意してあげれば、デフォルトテンプレートの page.php ではなく page-arekore.php を読み込んでくれます。

page-arekore.php に以下のように記述します。 ‘publish’, ‘post_type’ => ‘services’, //カスタム投稿タイプ名 ‘paged’ => $paged, ‘posts_per_page’ => 30, // 表示件数 ‘orderby’ => ‘date’, ‘order’ => ‘DESC’ ) ); if ($the_query->have_posts()) : $html_top_result=”; while ($the_query->have_posts()) : $the_query->the_post(); //ルーチン処理記述 endwhile; $html_top_result .= ”; else : $html_top_result = ‘

ありません。’; endif; echo $html_top_result; ?> using_permalinks()){ $paginate_format = ”; $paginate_base = add_query_arg(‘paged’,’%#%’); }else{ $paginate_format = (substr($paginate_base,-1,1) == ‘/’ ? ” : ‘/’) . user_trailingslashit(‘page/%#%/’,’paged’); $paginate_base .= ‘%_%’; } echo paginate_links(array( ‘base’ => $paginate_base, ‘format’ => $paginate_format, ‘total’ => $the_query->max_num_pages, ‘mid_size’ => 1, ‘current’ => ($paged ? $paged : 1), ‘prev_text’ => ‘< 前へ’, ‘next_text’ => ‘次へ >’, )); ?>

ポイント:
① 3行目でページ番号を取得してます。
② 5行目:クエリ関数は WP_Query を使うこと。上記のような記述では他のクエリ関数だとうまくいきません。
③ 34行目から下のページリスト表示処理の部分は割と汎用的なので、上のコードをコピペで使えます。
 ただし、パーマリンク設定をいじっていたりするとうまく動かない場合があるので、
 その場合は「FV Top Level Categories」というプラグインをインストールしておくと解決するかもしれません。
④ 49行目の’total’ => $the_query->max_num_pages の $the_query は取得した配列の変数名を入れてください。
 
 
なお、固定ページでなく、シングルページ(記事ページ)でページネーションをしたい、という場合は、
こちらの記事
「シングルページ(記事ページ)で何か記事の一覧表示をしてさらにページネーションもするときの注意点」をご覧ください。

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