PORTFOLIO & WEB DESIGN MEMORANDOM BLOG
PORTFOLIO & WEB DESIGN MEMORANDOM BLOG
【WORDPRESS】ページネーションを正しく機能させる方法
タグ :
目次
WP_Queryクラスやpre_get_postsアクションフックを使用し、ページネーションを使う
WordPressで<?php query_posts(“posts_per_page=10”); ?>を使うとページネーションが正しく機能しないことがあります。これは、query_postsが新しいクエリを実行し、元のクエリを上書きしてしまうためです。その結果、ページネーションが期待通りに動作しなくなります。
この問題を解決するには、WP_Queryクラスやpre_get_postsアクションフックを使用することが推奨されます。
1.WP_Queryを使用する
- <?php
- $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
- $query = new WP_Query(array(
- 'posts_per_page' => 10,
- 'paged' => $paged
- ));
- ?>
- <?php if ($query->have_posts()) : ?>
- <?php while ($query->have_posts()) : $query->the_post(); ?>
- <!-- 投稿の表示コード -->
- <?php endwhile; ?>
- <!-- ページネーション -->
- <?php
- the_posts_pagination(array(
- 'mid_size' => 2,
- 'prev_text' => __('Previous', 'textdomain'),
- 'next_text' => __('Next', 'textdomain'),
- ));
- ?>
- <?php endif; ?>
- <?php wp_reset_postdata(); ?>
2.functions.phpファイルにpre_get_postsアクションフックを使用するコードを追加
- function custom_posts_per_page($query) {
- if (!is_admin() && $query->is_main_query()) {
- if (is_home() || is_archive()) {
- $query->set('posts_per_page', 10);
- }
- }
- }
- add_action('pre_get_posts', 'custom_posts_per_page');
MILMONA MILMONA MILMONA MILMONA MILMONA
MILMONA MILMONA MILMONA MILMONA MILMONA