WordPressのトップページなどで投稿数によってページ送りを設置した際に、index.phpを使わず別途固定ページに別テンプレート(front_page.phpなど)を使っている場合、「表示設定 > 固定ページ (以下を選択)」を設定してるかと思います。
その際にURL(〜/page/2/)は変化しても表示される投稿内容は時系列などでソートされたものが変化しない場合の解決方法です。
query_posts やWP_query絡み(?)っぽいものはわりと目にしましたが、query_postsは使っておらず、今回自分もちょっとハマってしまったのでその解決方法となります。
早速ですが解決方法↓
◎「表示設定 > 固定ページ (以下を選択)」を「最新の投稿」へ戻す(デフォルト)
※1ページに表示する最大投稿数と「’posts_per_page’ => ◯,」も注意
以上(笑)
状況、好み(?)によりますが個人的に大抵の場合、index.phpをトップページに使わないため「表示設定 > 固定ページ (以下を選択)で作成した固定ページ(スラッシュ/で終わる固定ページに指定)」を設定していました。
※トップページでページ送り的なの使うとき、「最新の投稿」でないとダメなんだろうか…。
また、個人的に出来る限りプラグインを使いたくないので、もしかしたらページ構造をアレコレするプラグインを使っていた場合、とくに問題なく投稿記事も変化するかもしれません。
ちなみにどのようなページ遷移の情報が渡っているとか、なぜに上記で大丈夫なのかは詳細見てませんがあしからず。。
ちなみに、front-page.phpでの呼び出しは以下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $total_post_count = wp_count_posts(); $published_post_count = $total_post_count->publish; $total_pages = ceil( $published_post_count / $posts_per_page ); $args = array( 'paged' => $paged, 'post_type' => 'post', 'posts_per_page' => 4, 'orderby' => 'post_date', 'post_status' => 'publish' ); $myposts = get_posts($args); foreach($myposts as $post): ?> <?php get_template_part('temp', 'none'); ?> <?php endforeach; ?> <div class="topNavi pageNavi"> <ul> <li><?php echo get_next_posts_link( __('« Older Posts', 'kazunoriiguchi.com blog')); ?></li> <li><?php echo get_previous_posts_link( __('Newer Posts »', 'kazunoriiguchi.com blog')); ?></li> </ul> </div> |
しかしながら、「表示設定 > 固定ページ (以下を選択)」の場合でもなにかしら方法があるような気も。
どなたかご存知でしたらご教示いただけますと助かりますm(__)m