フォーラム

[解決済み] 全記事リストを複数ページに分けて表示したい (5 件の投稿)

  1. ringnir2
    メンバー
    4 months前の投稿 #

    固定ページに専用テンプレを作り、全記事リストを複数ページに分けて表示したいのですが、「<< Older Entries」をクリックしても次のページに同じ記事リストが表示されてしまうだけです。

    使用しているコードは以下のとおりです。

    <?php $paged = get_query_var('page');
    query_posts( 'post_status=publish&posts_per_page=100&paged=$paged' ); ?>
    
    <?php if (have_posts()) : ?>
    
    <ul>
    
    <?php while (have_posts()) : the_post(); ?>
    
    <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
    
    <?php endwhile; ?>
    
    </ul>
    
    </div>
    
    <?php endif; ?>
    
    <div class="flow">
    
    <div class="left">
    <?php next_posts_link(__('&laquo; Older Entries')) ?>
    </div>
    
    <div class="right">
    <?php previous_posts_link(__('Newer Entries &raquo;')) ?>
    </div>
    
    </div>

    何が間違っているのか、まったくわかりません。
    「<< Older Entries」をクリックしたら過去の記事が表示されるにはどうすればよいでしょうか?
    どなたかわかる方がいたら、教えていただけないでしょうか?

  2. jim912
    世話役
    4 months前の投稿 #

    ringnir2さん、こんにちは。

    $paged = get_query_var('paged');

    ではないでしょうか?

  3. ringnir2
    メンバー
    4 months前の投稿 #

    >jim912さん

    pagedに変えても同じなんです。

    http://wpdocs.sourceforge.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

    Pagination Note: You should set get_query_var( 'page' ); if you want your query to work with pagination. Since WordPress 3.0.2, you do get_query_var( 'page' ) instead of get_query_var( 'paged' ). The pagination parameter 'paged' for query_posts() remains the same.

    ここを読む限り、3.0.2以降はpageが推奨らしいので、pageにしてます。

  4. jim912
    世話役
    4 months前の投稿 #

    ringnir2さん

    よく見れば変数がシングルクォートで囲まれて文字列扱いになっています。

    query_posts( 'post_status=publish&posts_per_page=100&paged=$paged' ); ?>

    変数として扱う場合は、ダブルクォートで変数展開が行われるようにするか

    query_posts( "post_status=publish&posts_per_page=100&paged=$paged" ); ?>

    文字列をドットで結合するようにしてください。

    query_posts( 'post_status=publish&posts_per_page=100&paged=' . $paged ); ?>
  5. ringnir2
    メンバー
    4 months前の投稿 #

    >jim912さん

    仰る通りダブルクォートに変えたら、正常動作しました!
    シングルクォートとダブルクォートに、そういう意味の違いがあるとは知りませんでした。
    教えていただいてありがとうございます。
    助かりました。

返信

ログイン しなければ投稿できません。

About this Topic

Tags

タグ はまだありません。