特定のカテゴリーを除外して表示することについて以前記事に書いたのですが、逆に特定のカテゴリーを固定ページで表示する場合について。ここでは、TwentyTwelveを使用しています。
【以前の記事】
Twenty Twelveで特定のカテゴリーを表示しないでページングするコード
特定のカテゴリーを除外して表示する方法
固定ページ用のテンプレートを作成
固定ページに使用するカスタムテンプレートを作成します。
新規ファイルを作成するか、もしくはcategory.phpファイルをコピーして、ファイルの最初に下にあるコードのように任意のテンプレート名を記述します。
<?php /** * Template Name: 固定ページ用テンプレート */ ?>
category.phpを使用した場合、Twenty Twelveで特定のカテゴリーを表示しないでページングするコードの記事にあるquery_posts例のようにcategory.phpのStart the Loopコメント後(while(have_posts()) : the_post();前)に下にあるquery_postsのコードを挿入します。
query_posts('posts_per_page=7&cat=13&paged='.$paged);
posts_per_pageでは、表示する記事の数を設定します。
catは、表示するカテゴリーIDを設定します。複数カテゴリーを含めたい場合は、「,(カンマ)」で区切って設定します。例(cat=13,2,5)
pagedは、ページングできるように設定しています。
また、whileループの終わりにあるendwhileの前に下のコードを記述します。
wp_reset_query();
次に固定ページにを開いて「ページ属性」にある「テンプレート」のところで、作成したカスタムテンプレートを設定して保存すると固定ページで設定したカテゴリーが表示されページング(ページ送り)も表示されます。
固定ページでget_postsを使うとページングがうまくいかない
今回、トップページ以外の固定ページでget_postsを使い、特定カテゴリーを表示、またページングを実現しようとしたのですが、ページングが表示されず原因を考える時間がなかったので、機能を実現するコードをquery_postsに変更しましたが、機会があればget_postsの方法も試してみていつか書ければと思います。
コメント