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(__('« Older Entries')) ?>
</div>
<div class="right">
<?php previous_posts_link(__('Newer Entries »')) ?>
</div>
</div>
何が間違っているのか、まったくわかりません。
「<< Older Entries」をクリックしたら過去の記事が表示されるにはどうすればよいでしょうか?
どなたかわかる方がいたら、教えていただけないでしょうか?
ringnir2さん、こんにちは。
$paged = get_query_var('paged');
ではないでしょうか?
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にしてます。
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 ); ?>
ringnir2
メンバー
4 months前の投稿 #
>jim912さん
仰る通りダブルクォートに変えたら、正常動作しました!
シングルクォートとダブルクォートに、そういう意味の違いがあるとは知りませんでした。
教えていただいてありがとうございます。
助かりました。