サポート » プラグイン » WP-PageNaviで、ページングはできるが同じ記事が重複して表示される

  • marcato8

    (@marcato8)


    お世話になります。お知恵をお借し頂きたいです。
    WP-PageNaviを使用して、search-[カスタム投稿名].php にて検索結果を3件ずつ表示しようとして以下の症状が出ました。

    ■導入前
    カスタム投稿の中から、検索した記事を全て表示することができることを確認。

    ■PageNaviを使うにあたって行ったこと。
    ①WordPressの「表示設定」にて 1ページに表示する最大投稿数 を「1件」に設定
    ②ページ番号が取得できるように、$pageをquery_postsに設定。
    ③wp_reset_query をループ処理終了後に実行

    ■WP-PageNavi導入後の症状

    • ①ページ送りはできるが、同じ記事が違うページに出力される
       ただ、全ページの記事の合計は検索ヒット時の件数と同じ=表示されない記事があるということ。
    • ②ページ1>ページ2>ページ1 と遷移すると、ページ1に表示される記事が変化する。
    • ■ページの表示に使っている処理
      ●前処理
       `<?php
      query_posts( array(
      ‘meta_query’ => $metaquerysp,  //query_postにmeta_query(検索条件)を入力
      ‘s’ => $s,
      )
      );
      ?>`
      >検索条件を配列で$argに格納したところから開始。
      ●search-[カスタム投稿名].php
      `<?php
      parse_str( $query_string, $args ); //ページ本来の情報を取得
      global $wp_query;
      $args = array_merge( $wp_query->query_vars, array( ‘post_type’ => ‘カスタム投稿名’,’posts_per_page’ => 2, ‘paged’ => $paged,’orderby’ => ‘rand’));
      query_posts( $args );
      ?>`
      >検索件数を表示
      <?php if (have_posts()) : ?>
      <p><?php echo $wp_query->found_posts; ?>件の記事が見つかりました。

      >検索結果を表示
      <?php while (have_posts()) : the_post(); ?>
      <div class=”box1″>
      <?php echo $post->post_title; ?>
      </div>
      <?php endwhile; ?>
      <?php else: ?>
      <p>記事はありません</p>
      <?php endif; ?>
      <?php wp_pagenavi(); ?> //WP-PageNavi表示
      <?php echo $paged; ?> //ページ番号取得ができているか確認のため
      <?php wp_reset_query(); ?> //

      $page 関数の操作には問題がないが、ページごとの記事の出力に問題があるという状態です。

      上記現象の原因について、ご教授頂けますでしょうか。
      宜しくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • kjmtsh

    (@kjmtsh)

    ‘orderby’ => ‘rand’

    となっていますから、

    ページ送りはできるが、同じ記事が違うページに出力される

    ページ1>ページ2>ページ1 と遷移すると、ページ1に表示される記事が変化する。

    が正常動作ではないでしょうか。他に誤りがなければ、WP-PageNavi なしでも、この動作になると思いますよ。

    marcato8

    (@marcato8)

    kjmtsh様
    ご指摘ありがとうございます。確かに、”orderby = date”などとすることで、上記問題については解決致しました。

    WordPressの仕組みとして、ページ遷移は「元のURL/page/2」の様に表示されることからも、ページが変わるごとにページを再読み込みしていることを把握していませんでした。。

    実は、希望の動作は少々違っておりまして、記事が見つかったら

    if have_posts()

    記事をランダムな順で並べ、ページごとの記事の出力の順番を固定し、遷移しても変わらないようにしたいのです。
    と思ったら既に本フォーラム内に類似の質問がありました。
    ttp://ja.forums.wordpress.org/topic/3635?replies=7
    こちらを参考にやってみようと思います。
    視野が狭くなっていたので大変助かりました! 本当にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「WP-PageNaviで、ページングはできるが同じ記事が重複して表示される」には新たに返信することはできません。