サポート » プラグイン » AdvancedCustomFieldの項目でソートしたアーカイブページのページネーションが

  • 解決済 umioyo

    (@umioyo)


    お世話になります。

    AdvancedCustomFieldを使って詳細ページを構築し、その1項目にデイトピッカーを用いているので、その日付をキーにしてアーカイブページで一覧を作っています。

    ソートなどうまくできたと思っていたのですが、今日ページネーションに問題があることがわかりました。
    「設定」の「1ページに表示する最大投稿数」で設定した通りのページネーション番号は表示されるのですが、どのページ番号をクリックしても1ページ目が表示されます。
    URLは変わりますが、1ページ目のリンクがリンク無しの状態で、2ページ目以降はリンクが付いている状態(つまり常に1ページ目の状態)です。

    archive.phpのコードは以下のとおりです。(主な箇所を抜粋)

    $args = array(
    ‘orderby’ => ‘meta_value’,
    ‘meta_key’ => ‘eventday’,
    ‘meta_value’ => date(“Y-m-d”),
    ‘meta_compare’ => ‘<=’,
    ‘meta_type’ => ‘DATE’,
    ‘order’ => ‘DESC’
    );
    $wp_query = new WP_Query($args);

    <?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post();?>
    ・・・
    <?php endwhile; ?>
    <?php endif: ?>

    どのように記述すればよいかご教示頂けると幸いです。
    よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター Daisuke Takahashi

    (@extendwings)

    WP_Queryにpagedを渡してあげていないのが原因の気がします。

    https://codex.wordpress.org/Class_Reference/WP_Query#Pagination_Parameters

    $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
    $query = new WP_Query( array( 'paged' => $paged ) );

    トピック投稿者 umioyo

    (@umioyo)

    ありがとうございました!

    そのままでは動かなかったので
    $paged = ( get_query_var(‘paged’) ) ? get_query_var(‘paged’) : 1;
    で検索したら同じ悩みの人がたくさんいました。

    そして、コードを見直したら何に使うかわからなかったので自分でこの一行をコメントアウトしていました。。。orz

    $paged = get_query_var('paged') ? get_query_var('paged') : 1 ;
    $args = array(
    'orderby' => 'meta_value',
    'meta_key' => 'eventday',
    'meta_value' => date("Y-m-d"),
    'meta_compare' => '<=',
    'meta_type' => 'DATE',
    'order' => 'DESC',
    'paged'=>$paged
    );
    $wp_query = new WP_Query($args);

    で解決しました〜

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「AdvancedCustomFieldの項目でソートしたアーカイブページのページネーションが」には新たに返信することはできません。