• 解決済 tamaki75

    (@tamaki75)


    お世話になります。

    使用プラグイン:WP-PageNavi
    wpの表示設定の「1ページに表示する最大投稿数」:5件

    カスタム投稿(投稿名:event)のアーカイブページにて

    ・新着イベント記事5件(↓のターム:year以外の新着順)
    ・年間行事5件(ターム:yearで判別)

    という表示をさせています。

    これを
    ・新着イベント記事5件(ターム:year以外の記事)の
    下にページャーを付けて、5件づつ過去の記事も閲覧できるようにしたいのですが、
    ページャーの途中から404になってしまいます。

    該当する「ターム:year以外」の記事は47件、
    ページャーは[1]~[10]まで表示されているのですが、
    正常にページャーが動いているのは[1]~[6]まで、
    [7]から[10]は404になってしまいます。

    何か手がかりなど教えて頂けましたら幸いです。

    
    <?php
    $paged = get_query_var('paged') ? get_query_var('paged') : 1;	
    $args = array(
     'post_type' => 'event',
     'posts_per_page' => 5,//表示件数
     'paged' => $paged ,
     'tax_query' => array(
                array(
                    'taxonomy' => 'year_event',
                    'field' => 'slug',
                    'terms' => 'year',
                    'operator' => 'NOT IN', //年間以外
                    ),
                ),
            );
    $the_query = new WP_Query( $args );
    ?>
    
    <?php query_posts( $args ); ?>
    <?php if(have_posts()): ?>
    <?php while(have_posts()):the_post(); ?>
    //ループ内容//
    <?php endwhile ?>
    <?php endif; ?>
    
    <?php if(function_exists('wp_pagenavi')) wp_pagenavi(array('query' => $the_query)); ?>
    <?php wp_reset_query(); ?>
      
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • jdbb

    (@jdbb)

    まず、query_postsを使うべきではありません。
    https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/query_posts#.E8.AA.AC.E6.98.8E

    その上で、せっかく直ぐ上で「WP_Query」で投稿を$the_queryに取得しているので
    それを使ってループしましょう。
    https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query#.E3.81.B5.E3.81.A4.E3.81.86.E3.81.AE.E3.83.AB.E3.83.BC.E3.83.97.EF.BC.88.E5.88.A5.E3.81.AE.E6.9B.B8.E3.81.8D.E6.96.B9.EF.BC.89
    に書いてある「ふつうのループ(別の書き方)」でそのままかけば
    あとはwp pagenaviの方もよしなにしてくれると思います。

    <?php
    $paged = get_query_var('paged') ? get_query_var('paged') : 1;	
    $args = array(
      'post_type' => 'event',
      'posts_per_page' => 5,//表示件数
      'paged' => $paged ,
      'tax_query' => array(
        array(
          'taxonomy' => 'year_event',
          'field' => 'slug',
          'terms' => 'year',
          'operator' => 'NOT IN', //年間以外
        ),
      ),
    );
    $the_query = new WP_Query( $args );
    if ( $the_query->have_posts() ) :
      while ( $the_query->have_posts() ) :
        $the_query->the_post();
    ?>
    //ループ内容//
    <?php endwhile ?>
    <?php wp_reset_postdata(); ?>
    <?php endif; ?>
    
    <?php if(function_exists('wp_pagenavi')) wp_pagenavi(array('query' => $the_query)); ?>
    <?php wp_reset_query(); ?>
    トピック投稿者 tamaki75

    (@tamaki75)

    jdbb 様

    ありがとうございます。
    query_postsの件、勉強になりました。
    query_posts、使ってはいけなかったんですね…。

    上記のようにWP_Queryを使ってループしてみましたが、ページャの表示は同様でした。

    パーマリンク設定を見たら、function.is-writableというエラー表示が出ていましたのでこれが原因のひとつかもしれません。。 

    追記:別サーバーのWPで試したら問題なく動作しました。

    • この返信は7年前にtamaki75が編集しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「アーカイブページのページャーが途中から404になってしまう」には新たに返信することはできません。