カスタムページネーション

August 06, 2023

Table of Contents

ページャーの前でグローバルqueryを書き換える

$GLOBALS['wp_query']->max_num_pages = $query->max_num_pages;

posts_per_pageが効かない

global $wp_query;
$wp_query->query_vars['posts_per_page'] = 4;
$GLOBALS['wp_query']->max_num_pages = $posts->max_num_pages;
// set_query_var('paged', $current_page);

ページ数取得

$wp_query->max_num_pages;

1ページ目かどうかの判定

is_paged() 現在のページ番号が 1 より大きいかどうかを調べます。ブーリアン関数で、TRUE または FALSE のどちらかを返します。

現在のページ

$current_pgae = get_query_var( 'paged' );

pagination

<div><?php the_posts_pagination($paginationConfig); ?></div> ページネーションを表示

  • have postの外側で使うこと
  • デフォルトで表示されているテキストを消すにはcssでdisplay none

ページ送りが不正

投稿タイプごとに設定するwp query側のper pageと合わせる

function my_custom_posts_per_page( $query ) {
  if ( ! is_admin() && $query->is_main_query() ) {
    
    if ( $query->get('post_type') == 'blog', $post_types ) ) {
      $query->set( 'posts_per_page', 10 );
    }
  }
}