$paged に何も入ってない気がするので
<?php if (have_posts()) : query_posts( 'posts_per_page=3&cat=27&paged='.get_query_var('paged') ); while (have_posts()) : the_post(); ?>
とすると良いかも。
kzさん
ありがとうございます。
仰せのとおりに書き換えてみましたが、変化ありませんでした。
あ、
<?php query_posts( 'posts_per_page=3&cat=27&paged='.get_query_var('paged') ); if (have_posts()) : while (have_posts()) : the_post(); ?>
ですね。
query_posts()
の結果を have_posts()
で見るので順序は
query_posts --> if --> while --> なんかする --> endwhile --> endif --> wp_reset_query
となります。
カテゴリの一覧ページで似た状況になったことがあります。
posts_per_pageの値が、ダッシュボードの表示設定の「1ページに表示する最大投稿数」よりも少ない場合に発生するかもしれません。
お試しください~
KZさん
ありがとうございます。。。でも変化ないです。
sysbirdさん
posts_per_pageの設定は3、
ダッシュボードの表示設定も3です。
試しにダッシュボードを1にもしてみましたがダメでした。
動作は確認しているので、他で何かマズいところがあると思われます。
まずは「トップページ」のコード全体を見直してみましょー
KZさん
本当に何度もすみません。
コードがあまりよく読めないので、どうかお力をお貸しください。
全体のコードは、
get_header();
?>
<h3 class=”storytitle”>新着情報</h3>
<?php query_posts( ‘posts_per_page=3&cat=27&paged=’.get_query_var(‘paged’) ); if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class=”datecomrap”>
<div class=”date”>
<?php the_time(‘M’); ?>
<span style=”font-size:2em; font-weight:bold;”><?php the_time(‘d’); ?></span>
<?php the_time(‘Y’); ?>
</div><!– end date –>
<!– if you don’t want the comment count left of the post, erase from here … –>
<div class=”commy”>
<?php comments_popup_link( ‘0’, ‘1’, ‘%’, ‘comments-link’, ‘-‘); ?>
</div><!– end commy –>
<!– to here –>
</div><!– end datecomrap –>
<div class=”storywrap”>
<div class=”post” id=”post-<?php the_ID(); ?>”>
<h3 class=”storytitle”>” rel=”bookmark”><?php the_title(); ?></h3>
<div class=”storycontent”>
<?php the_content(__(‘(more…)’)); ?>
</div><!– end storycontent –>
</div><!– end storywrap –>
</div><!– end post –>
<?php endwhile; else: ?>
<p style=”margin:100px 0 0 100px; font-weight:bold;”><?php _e(‘Sorry, no posts matched your criteria.’); ?></p>
<?php endif; ?>
<?php if(function_exists(‘wp_page_numbers’)) : wp_page_numbers(); endif; ?>
<?php get_footer(); ?>
です。
ページ送りは”WP Page Numbers”を使用しています。
これはトップページ以外はうまく動作していますし、デフォルトの「←新しい記事 古い記事→」みたいなページ送りのときもページが切り替わりませんでした。
実際のページをリンクするのはいけないでしょうか?アフィリはありません。
もしNGだったら削除します。
まだ制作途中で恥ずかしいのですが…
http://yutymore.com/www
どうかよろしくお願いします。
上記コードで正常動作しました(WP3.2.1)。
・NextGEN を 無効にしてみる。
・他にプラグインがあればひとつずつ無効にしてみる。
で原因が不明なら WordPress 再インストール…
がんばって調べるなら、まずは query_posts() 辺りを以下のようにして
HTML のソースに書き出されたクエリの状態を確認してみましょう!
<?php
query_posts( ‘posts_per_page=3&cat=27&paged=’.get_query_var(‘paged’) );
global $wp_query;
echo ‘<!–‘;var_dump($wp_query);echo ‘–>’; // これを追加
if (have_posts()) : while (have_posts()) : the_post();
?>
kzさん
本当にありがとうございます。
・全てのプラグインを無効にしてみました→だめでした。
・Wordpress再インストールは、新たに別のサイトを作って、別のテンプレートでやってみましたが、だめでした。
また、パーマリンクを様々変えてみましたが、それもだめでした。
当方の表示設定は、
・固定ページ
・フロントページ:新着情報
・投稿ページ:日記
です。
kzさんが正常動作したときもこの設定でしょうか?
クエリ表示、やってみました。
面白いですね、こんなことができるのは初めて知りました。
初心者なのでなかなか読み取ることが難しいですが、がんばって調べてみます。
もうしばらくクローズしなくてもいいですか?
よろしくお願いします。
フロントページを固定ページにすると paged の情報が無効にされる仕様/バグみたいなので
以下を functions.php に追加してください◎
add_action( 'parse_query', 'my_parse_query' );
function my_parse_query( $query ) {
if ( ! isset( $query->query_vars['paged'] ) && isset( $query->query_vars['page'] ) )
$query->query_vars['paged'] = $query->query_vars['page'];
}
kzさん
できました!!
大変に丁寧なご指導で、長々とお付き合いいただきまして本当にありがとうございまいた。
感謝の気持ちでいっぱいです。
またお世話になることがあるかもしれません。
そのときもどうかよろしくお願いいたします。
おおお!
kzさん、pagedが抜けてしまうの、僕も困ってました。ありがとうございます!