サポート » プラグイン » wp-pagenaviでカスタム投稿と検索結果のページャー

  • 解決済 fumidalat

    (@fumidalat)


    こんにちは

    ニュース一覧と検索結果のぺージャーがうまく作動せず困っています

    ニュース一覧はregister_post_typeをnewsとして作ったカスタム投稿を
    archive-news.phpで呼び出しています。
    一覧は
    <?php
    $args=array(
    ‘post_type’ => ‘news’, //カスタム投稿名
    ‘posts_per_page’=> 10, //表示件数(-1で全ての記事を表示)
    ‘order’ => ‘DESC ‘ //逆順 (ASC)
    );
    ?>
    <?php query_posts( $args ); ?>
    <?php if(have_posts()): ?>
    <?php while(have_posts()):the_post(); ?>
    ループ
    <?php endwhile; endif; ?>
    <?php wp_reset_query(); ?>
    としていますが、ここにページネーションを書いてもうまくいきません。

    検索結果もクエリでの出力で
    <?php
    query_posts( array(
    ‘tax_query’ => $taxquerysp,
    ‘meta_query’ => $metaquerysp,
    ‘s’ => $s,
    ‘posts_per_page’ => 30,
    ‘paged’ => $paged,
    ‘order’ => ‘ASC’,
    )
    );
    ?>
    <?php if ( have_posts() ) : ?>
    <?php while( have_posts() ) : the_post(); ?>
    ここにループ
    <?php endwhile; ?>
    <?php endif; ?>
    <?php wp_reset_query(); ?>

    となっています。

    どうすればページャーが機能するでしょうか?

    よろしくお願いします。

    ヘルプの必要なページ: [リンクを見るにはログイン]

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • 検索結果は自己解決しました。
    ?php
    $paged = get_query_var(‘paged’) ? get_query_var(‘paged’) : 1;
    $my_query = new WP_Query(array(
    ‘tax_query’ => $taxquerysp,
    ‘meta_query’ => $metaquerysp,
    ‘s’ => $s,
    ‘posts_per_page’ => 30,
    ‘paged’ => $paged,
    ‘order’ => ‘ASC’,
    )
    );
    ?>
    <?php if ($my_query->have_posts()) :while ( $my_query->have_posts() ) : $my_query->the_post(); ?>

    ループ

    <?php endif; ?>
    <?php wp_pagenavi(array(‘query’ => $my_query)); ?>
    <?php wp_reset_postdata(); ?>

    これでできました。
    カスタム投稿のクエリがうまくいきません。よろしくお願いします。

    カスタム投稿のほうですが、下記でできました。
    しかし、全記事が8記事なので、本来は2ページ目が最後になるはずですが、なぜか8ページ目までページャーが出ます。
    3ページ目から8ページ目までは何も入らない状態です。
    対処法がわかりますでしょうか?
    <?php
    $args=array(
    ‘post_type’ => ‘news’, //カスタム投稿名
    ‘posts_per_page’=> 5, //表示件数(-1で全ての記事を表示)
    ‘order’ => ‘DESC ‘, //逆順 (ASC)
    ‘paged’ => $paged//固定ページをアーカイブページにする
    );
    ?>
    <?php query_posts( $args ); ?>
    <?php if ($my_query->have_posts()) :while ( $my_query->have_posts() ) : $my_query->the_post(); ?>

    ループ

    <?php endif; ?>
    <?php wp_pagenavi(array(‘query’ => $my_query)); ?>
    <?php wp_reset_postdata(); ?>

    自己解決です

    <?php wp_reset_query(); ?>
    を書く位置を
    <?php if(function_exists(‘wp_pagenavi’)) { wp_pagenavi(); } ?>
    の下にしたらできました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。