category.phpで出力した記事一覧ページのページ送りにWP-PageNaviを使っています。
ページネーション2ページ目以降が「投稿が見つかりません。」 と表示されます。
echo $paged;をしてみたら 2ページ目には
2 投稿が見つかりません。
3ページ目には
3 投稿が見つかりません。
となるのでページ移動はできているように思われます。
記事の件数分ページネーションが表示されるので、ループは働いているのだと思います。が、記事が取得できません。
試してみたこと
●プラグイン 「No Category Base (WPML)」 「FV Top Level Categories」 プラグインをそれぞれ使ってみましたがダメだったので、現在は停止しています。
●管理画面の表示設定にある「1ページに表示する最大投稿数」を1件にする。 結果変わらず。
●ネットを参照に見つけた以下のコードをfunction.phpに記述も結果変わらず。
php
1function pagenavi_home($wp_query) { 2 if (!is_admin() && $wp_query->is_main_query() && $wp_query->is_home()) { 3 $wp_query->set('post_type', 'post'); 4 } 5} 6add_action('pre_get_posts', 'pagenavi_home');
なお、URLは
1ページ目
http://localhost:xxxx/category/bs-cs/bstbs/
2ページ目
http://localhost:xxxx/category/bs-cs/bstbs/page/2/
3ページ目
http://localhost:xxxx/category/bs-cs/bstbs/page/3/
となっています。
<section class="secPage worksArchive "> <div class="container_small"> <div class=" worksArchive__list fadein_list"> <?php $uri = rtrim($_SERVER["REQUEST_URI"], '/'); //URL末端の / を削った上でURLを取得 $uri = substr($uri, strrpos($uri, '/') + 1); //URLの最後の / の位置を取得し、substrでその位置以降の文字を取得. echo $paged; $works_args = array( 'post_type' => 'post', 'posts_per_page' => 2, 'orderby' => 'post_date', 'paged' => $paged, 'hide_empty' => 0, 'parent' => get_query_var('cat'), 'category_name' => $uri, ); $works_query = new WP_Query($works_args); ?> <?php if ($works_query->have_posts()): ?> <?php while ($works_query->have_posts()) : $works_query->the_post();?> <article> <a href="<?php the_permalink(); ?>"> <h3 class="worksArchive__text"><?php the_title(); ?></h3> <span class="worksArchive__cate"> <?php $cats = get_the_category(); foreach($cats as $cat){ if($cat->parent){ echo $cat->cat_name; } } ?> </a> </article> <?php endwhile; ?> <?php else: ?> <h2 class="program--text">投稿が見つかりません。</h2> <?php wp_reset_postdata(); endif; ?> </div> <div class="wp-pagenavi" role="navigation"> <?php if (function_exists('wp_pagenavi')) { wp_pagenavi(array('query' => $works_query)); } ?> </div> </div> </section>
以上のコードを書いています。
ネットにも色々情報があり試してみたのですが解決できません。
アドバイスをお願いします。
あなたの回答
tips
プレビュー