ブログ

投稿ページにページネーション

ページネーションも一筋縄ではいかないので毎回Google先生のお世話になります。

今日もまた未来の自分のためにコピペ用の記事を書いておきます。

基本のページネーション

<?php
$args = array(
    'mid_size' => 1,
    'prev_text' => '<<前へ',
    'next_text' => '次へ>>',
    'screen_reader_text' => ' ',
);
the_posts_pagination($args);
?>

固定ページのページネーション

<?php
global $wp_rewrite;
$paginate_base = get_pagenum_link(1);
if(strpos($paginate_base, '?') || !$wp_rewrite->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' => '次へ >',
));
?>

投稿ページのページネーション

前の記事・次の記事へのリンク

<div class="post_pagination">
    <?php $nextpost = get_adjacent_post(false, '', false); if ($nextpost) : ?>
    <div class="post_pagination_prev">
       <a href="<?php echo get_permalink($nextpost->ID); ?>">
          <span class="post_pagination_prev_img"><?php echo get_the_post_thumbnail($nextpost->ID); ?></span>
          <span class="post_pagination_prev_text">«<?php echo esc_attr($nextpost->post_title); ?></span>
       </a>
    </div>
    <?php endif; ?>
    <?php $prevpost = get_adjacent_post(false, '', true); if ($prevpost) : ?>
    <div class="post_pagination__next">
       <a href="<?php echo get_permalink($prevpost->ID); ?>">
          <span class="post_pagination_next_img"><?php echo get_the_post_thumbnail($prevpost->ID); ?></span>
          <span class="post_pagination_next_text"><?php echo esc_attr($prevpost->post_title); ?>»</span>
       </a>
   </div>
    <?php endif; ?>
</div>