サポート » 使い方全般 » WP_Queryでページ送りがうまくいきません

  • 解決済 miwarock777

    (@miwarock777)


    これまでも同じようなことはやってきたのですが、なぜか今回は出来ません。
    何度も自分で直したりしてやっているうちに分からなくなってきてしまいました。。。
    唯一いつもと違うことと言えば、welcartプラグインを使っており、
    index.phpにて、商品の一覧を表示させています。
    どこかおかしなところがあれば、ご指摘くださいませんかm(_ _)m

    <?php
      $args = array(
      'category__not_in' => array( 20 ), //(array) - カテゴリーIDを指定して除外
      'posts_per_page' => 16,
      'paged' => get_query_var( 'paged' )
      );
      $the_query = new WP_Query( $args ); ?>
    
      <?php if ( $the_query->have_posts() ) : ?>
      <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
          <p>ここにループ</p>
      <?php endwhile; ?>
    
        <?php if(function_exists('wp_pagenavi')) wp_pagenavi(array('query' => $the_query)); ?>
    
      <?php else : ?>
    
      <p>記事がなかったときの表示</p>
    
      <?php endif; ?>
    
      <?php wp_reset_query(); ?>
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    このケースと同じだったりしますでしょうか?

    WP_QueryでWP-PageNaviを使う時にページ送りができなかった原因

    jim912さん、コメントありがとうございます。
    試してみたのですが、動きませんでした。。。

    現在、自分でいろいろ調べてたってみて、このようになっています。
    cat ID「22」の記事を16件表示させるようにしています。
    これですと、ページ送りは3ページ目まで表示されますが、
    2ページ目は表示するのに、3ページ目以降では404となってしまいます。。。

    $pagedが問題なのだとは思うのですが、何をどうしてよいものか、
    八方塞がりになっております(T▽T)

    <?php $paged = get_query_var( 'paged' ); ?>
    	<?php query_posts('cat=22&posts_per_page=16&paged='.$paged); ?>
        <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <?php
        usces_the_item(); //オブジェクト準備
        usces_have_skus(); //ループ用フラグ立てる
        ?>
        <p>ここにループ</p>
    	<?php endwhile; ?>
        </ul>
        <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
        <?php else : ?>
        <p>記事がなかったときの表示</p>
        <?php endif; wp_reset_query(); ?>

    以下のようにして、ページ送りは出来るようになりました。
    表示も切り替わるようになり、これで完成!と思ったのですが、、、

    なぜか、titleタグだけが404エラーになってしまう、という現象になりました(涙)
    <?php bloginfo(‘name’); ?>が吐き出す部分が、
    404 Not Found という文字列になってしまいます。

    <?php $my_query = new WP_Query( $query_string . '&posts_per_page=16&post_type=post&cat=22' ); ?>
    	<?php if ($my_query->have_posts()) : ?>
    	<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
    
        ==ここにループ==
    
        <?php endwhile; ?>
        </ul>
        <?php endif; ?>
        <?php if(function_exists('wp_pagenavi')){
        wp_pagenavi(array('query'=>$my_query));
        }
        ?>
        <?php wp_reset_postdata(); ?>

    こちらで解決できましたので、リンクをはっておきます。

    https://ja.forums.wordpress.org/topic/158612?replies=1

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「WP_Queryでページ送りがうまくいきません」には新たに返信することはできません。