固定ページで特定のカテゴリーを表示して(ページ送り(ページング)を表示する)

WordPressテーマカスタマイズ

特定のカテゴリーを除外して表示することについて以前記事に書いたのですが、逆に特定のカテゴリーを固定ページで表示する場合について。ここでは、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の方法も試してみていつか書ければと思います。

スポンサーリンク

コメント

タイトルとURLをコピーしました