こんにちは。
特定のカテゴリーアーカイブページのみ表示件数を変えるのであれば
テンプレート内でquery_postsを使うよりも
pre_get_postsというアクションフックを使って
メインクエリ(この場合はカテゴリー毎に表示件数を変える)を改変した方が良いですよ。
http://ja.forums.wordpress.org/topic/11137?replies=4
その上で特定のカテゴリーアーカイブのテンプレートファイルを用意すればよいかと。
Codex(日本語):テンプレート階層
すいません、おっしゃる意味がよく分かりません。
アクションフックを作るまでは理解できるのですが、実際にカテゴリーページにどのように反映するのかが分かりません。
また、私の質問は3ページ目以降が「ページが見つかりませんでした」となってしまうのですが、いただいた回答はこれに合致するのでしょうか?
えーっと、以前jim912さんが私が先に投稿したのと同じスレッドを紹介されていて、
その後、「無事動かすことができました」と返信されてますよね?
http://ja.forums.wordpress.org/topic/11223?replies=3
結局参考にされなかったという事ですか?
「wp-pagenaviを使用し、カテゴリごとに記事数を変更したい」で手順を書きましたが書きましたが、
まずはテーマのfunctions.phpにこちらのコードを書いてみてください。
function category_display_five_articles( $wp_query ) {
if (!is_admin()) { //管理画面以外で
if ( $wp_query->is_main_query() && $wp_query->is_category('review') ) { // メインのクエリーでカテゴリースラッグが"review"の時
$wp_query->set( 'posts_per_page', 9 ); // 表示件数は9件
}
}
}
add_action( 'pre_get_posts', 'category_display_five_articles' );</strong>
なお、このコード追記後はカテゴリーアーカイブ用のテンプレートで
query_postsの記述は必要ありません。
デフォルトテーマ等で確認してみてください。
その方法を試してみたのですが、デザイン的にいじる方法が分からず(というかほとんどいじれない?)、結局query_postsを使ったリスト表示を試してみたのですが、表題通りのエラー蜷rってしまいました。
一応、デフォルトのテンプレートにあるカタログアーカイブのコードが以下になると思うのですが、カスタマイズがきくのでしょうか?
<?php
$category_description = category_description();
if ( ! empty( $category_description ) )
echo '<div class="archive-meta">' . $category_description . '</div>';
get_template_part( 'loop', 'category' );
?>
こんにちは。
私の提示した方法は「メインクエリ」の改変、つまり、投稿を取得する部分のコードです。
まずは、私の提示したコードを試した時、デザインは別として、ページ送りは希望通りの動作をしましたか?
投稿の取得・ページ送りが希望通りになったら、次に投稿の表示方法を加工すれば良いと思います。
一番最初のwanwancoさんの投稿されたコードをもとにするなら、
<?php if (have_posts()) : ?>
から<?php endif; ?>
の間が、投稿を表示するループです。
デフォルトテーマ(Twenty Eleven)ならcategory.phpの32行目の
<?php while ( have_posts() ) : the_post(); ?>
から42行目の<?php endwhile; ?>
の間です。
(なお、デフォルトテーマでは get_template_part 関数でさらに別のテンプレートファイルを読み込んでいます)
この部分で個別の投稿の表示方法を加工すればいいと思います。
余談ですが、特定のカテゴリーのみデザインをかえるのであれば、
のいずれかを行うと、管理しやすいですよ。
gatespaceさん、ありがとうございました。
上記の設定通り行い、無事ページ送りができるようになりました。
ご足労おかけしました。
今後のために、ここのURLブックマークしておきます。(汗)