サポート » 使い方全般 » 固定ページに wp_pagenavi を表示させてたい

  • 解決済 n888

    (@n888)


    固定ページにテンプレートを用意して、カスタム投稿記事の表示をさせてます。
    設定で投稿記事は8件までの表示にしえあり、それ以上の記事につきましては、
    wp_pagenavi ページャープラグイン で対応したいのですが、

    <?php if (function_exists(‘wp_pagenavi’)): /* ページャープラグイン wp_pagenavi用 */
    wp_pagenavi(); ?>

    を、endif;下や上に入れても、ページャーが表示しなくて困っております。
    ご教授をお願い出来ればと思い、質問させて頂きます。

    テンプレートのカスタム投稿記事のコードは下記の様に書いてあります。

    宜しくお願い致します。

    <?php
    $arr = array( ‘decoration’); //投稿タイプ名を配列に入れる ?>
    <?php foreach ($arr as $thumbs) :
    $query = new WP_Query( ‘orderby=date&post_type=’.$thumbs ); //投稿を取得
    if ($query->have_posts()) :

    while ( $query->have_posts() ) : $query->the_post();

    echo ‘ <article class=”grid_3 box-link”>’;
    echo ‘ <div class=”box-s-middle”>’;
    echo ‘‘.get_the_post_thumbnail($post->ID, ‘thumb307′ , true).’‘; //指定サムネイル画像
    echo ‘‘.'<h3>’.get_the_title().'</h3>’.’‘;
    echo ‘ </div>’;
    echo ‘</article>’;
    endwhile;wp_reset_postdata();

    else:
    endif;

    endforeach; ?>

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 3点ほど修正してみました。
    1) この場合、カスタム投稿タイプ ‘decoration’ をわざわざ配列の要素にする必要はありません。
    2) WP_Query() の引数に ‘paged’ を追加。
    3) wp_pagenavi() は、デフォルトで $wp_query を参照するので、引数 ‘query’ に $query を指定し $query を参照するように変更。
    未確認ですので、動かなかったらすいません。

    <?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $query = new WP_Query( 'orderby=date&post_type=decoration&paged='.$paged );
    if ($query->have_posts()) :
    
    while ( $query->have_posts() ) : $query->the_post(); //投稿を取得
    
    echo ' <article class="grid_3 box-link">';
    echo ' <div class="box-s-middle">';
    echo ''.get_the_post_thumbnail($post->ID, 'thumb307' , true).''; //指定サムネイル画像
    echo ''.'<h3>'.get_the_title().'</h3>'.'';
    echo ' </div>';
    echo '</article>';
    endwhile;wp_reset_postdata();
    if (function_exists('wp_pagenavi')):
    wp_pagenavi(array('query' => $query));
    endif;
    else:
    endif;
    ?>
    トピック投稿者 n888

    (@n888)

    pluto1234様
    ご教授有難う御座います。
    ページャーの表示が出ました。
    初心者でわからない事ばかりで、皆様の教えを頂きながらの制作でお恥ずかしい気持ちと感謝でいっぱいです。

    表示はしたものの、今度はリンクでつまづいて…。

    echo ”.get_the_post_thumbnail($post->ID, ‘thumb307’ , true).”; //指定サムネイル画像
    echo ”.'<h3>’.get_the_title().'</h3>’.”;

    に個別ページのリンクをさせたくて、それぞれに下記の様にリンクをしましたがうまくリンクしません(泣)

    a href=”‘.get_post_type_archive_link($thumbs).'”

    勉強しても全然追いつきません。

    <?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $query = new WP_Query( 'orderby=date&post_type=decoration&paged='.$paged );
    if ($query->have_posts()) :
    
    while ( $query->have_posts() ) : $query->the_post(); //投稿を取得
    
    echo '<article class="grid_3 box-link">';
    echo ' <div class="box-s-middle">';
    echo ' <a href="'.get_permalink($post->ID).'">'.get_the_post_thumbnail($post->ID, 'thumb307' , true).'</a>';  //指定サムネイル画像
    echo ' <h3><a href="'.get_permalink($post->ID).'">'.get_the_title().'</a></h3>';
    echo ' </div>';
    echo '</article>';
    endwhile;wp_reset_postdata();
    if (function_exists('wp_pagenavi')):
    wp_pagenavi(array('query' => $query));
    endif;
    else:
    endif;
    ?>

    まったく趣味の問題ですが、WordPress タグ(get_*** ではなく the_***)を使い echo せずに書いたほうが見やすいです。

       :
    while ( $query->have_posts() ) : $query->the_post();
    ?>
      <article class="grid_3 box-link">
      <div class="box-s-middle">
      <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('thumb307'); ?></a> //指定サムネイル画像
      <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
      </div>
      </article>
    <?php
    endwhile;wp_reset_postdata();
       :

    トピック投稿者 n888

    (@n888)

    pluto1234様

    度重ね有難う御座います。

    確かにおっしゃる通りです。
    本当にお恥ずかしいのですが、echo に関しても勉強中で、
    いったい echo って…?
    みたいな状態です。

    有難う御座いました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「固定ページに wp_pagenavi を表示させてたい」には新たに返信することはできません。