• 解決済 chatm

    (@chatm)


    固定ページに複数カテゴリーの記事一覧を表示しましたが、ページネーションがうまくいきません。
    archive-news.phpという固定ページを作って下記のコードを記述しましたが、記事一覧は出力されるのですが、ページネーションが表示されなくて悩んでいます。教えて頂けると助かります。

    <div id="news-all">    
        <ul class="clearfix">
    	<?php
    	$paged = (int) get_query_var('paged');
    	$post_loop = new WP_Query( array(
    	'post_type' => 'post',
    	'category__in' => array(5,4,15,7,3,2,9,11,14,12,8),
    	'posts_per_page' => 10,
    	'paged' => $paged,
     
    	) );if ($post_loop->have_posts()): ?>	
    
    	<?php while ( $post_loop->have_posts() ) : $post_loop->the_post();?>
        <?php get_template_part('module_loop_post'); ?>
        
            <li><span><?php echo get_the_date('Y/m/d'); ?></span>
            <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
            <?php the_excerpt(); ?>
            <?php endwhile; endif; ?>
            </li>
        </ul>
    </div><!-- /news-all -->
    
    </section><!-- /contents -->
    
    <!-- pegenation -->
    <div class="pagination pagination-index">
    	<?php echo paginate_links( array(
    		'type' => 'list',
    		'prev_text' => '&laquo;',
    		'next_text' => '&raquo;'
    	) ); ?>
    </div>
7件の返信を表示中 - 1 - 7件目 (全7件中)
  • モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    echo paginate_links…
    というのはWordPress標準の関数ではないですが、何かページネーションのプラグインをご利用ですか?
    (標準の関数は the_posts_paginationです)

    ページネーションのリンクがおかしい、ではなく、そもそも表示されていないということですと、その関数を利用するプラグイン(もしくはテーマの独自関数?)の設定方法が正しくない、などの理由が考えられます。
    ご利用のプラグインやテーマの情報をもう少しいただけますでしょうか。

    トピック投稿者 chatm

    (@chatm)

    ご返答ありがとうございます。
    プラグインは使っておりません。オリジナルのテーマでarchive-news.phpという固定ページ(アーカイブページ)を作り、そこに複数あるカテゴリーページ内の新着情報一覧を表示させる設定にしています。一覧は表示されるのですが、ページネーションが動きません。
    表示させたいページのアドレスを見ると
    「ドメイン名/ディレクトリ名/news(パーマリンク設定でつけた名前)/?preview=true」となっています。ちなみに、news/page/2/ や news/page/3/ と打つと内容が表示されますので、切り替わらないだけでページはあるようです。
    paginate_links…というのは、下記のページを参考にして設定してみました。
    Codex関数リファレンス/paginate links
    WordPressでプラグインを使わずに簡単にページネーション
    ページネーションを以下のコードに修正しても、「NULL」と出てしまいます。
    パーマリンク設定のページ名を「1」などに変えても変わりません。
    以下は修正して「NULL」と出力されたページネーションのコードです。

    
    <?php
        $big = 9999999999;
        $arg = array(
            'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
            'current' => max( 1, get_query_var('paged') ),
            'total'   => $wp_query->max_num_pages,
            'type'    => 'list'
        );
        var_dump(paginate_links($arg));
    ?>
    • この返信は6年、 7ヶ月前にchatmが編集しました。

    こんにちは

    total の値が違うのではないでしょうか。

    'total' => $wp_query->max_num_pages,

    'total' => $post_loop->max_num_pages,

    トピック投稿者 chatm

    (@chatm)

    ishitaka様ありがとうございます!表示されました!
    しかし、string(534) というものが出てしまって。これはなんでしょうねぇ…はぁ一難去ってまた一難です。
    下記は出力されたページのページネーションのソースコードのコピーです。

    string(534) "<ul class='page-numbers'>
    	<li><a class="prev page-numbers" href="/news/page/7/">&laquo; 前へ</a></li>
    	<li><a class='page-numbers' href="/news/page/1/">1</a></li>
    	<li><span class="page-numbers dots">&hellip;</span></li>
    	<li><a class='page-numbers' href="/news/page/6/">6</a></li>
    	<li><a class='page-numbers' href="/news/page/7/">7</a></li>
    	<li><span aria-current='page' class='page-numbers current'>8</span></li>
    </ul>
    "

    var_dump() になってますよ。

    var_dump(paginate_links($arg));

    echo paginate_links( $arg );

    あと、コードで気になった箇所があります。

    <?php endwhile; endif; ?>
    </li>

    は、

    </li>
    <?php endwhile; endif; ?>

    では、ないでしょうか。

    トピック投稿者 chatm

    (@chatm)

    ishitaka様、ありがとうございます!エラーも消えてきれいに表示できました!本当に助かりました!
    wp-config.phpでワーニングが出ないように書き換えちゃおうかと姑息な手段を考えていたところでした。まだまだ勉強中ですががんばります!ありがとうございます!

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「固定ページに複数カテゴリー記事一覧表示しましたが、ページネーションがうまくいかない」には新たに返信することはできません。