特定のカテゴリの下に投稿するだけの自分のカテゴリページ用のカスタムテンプレートを作成しようとしています。現時点では、私はすべての投稿を引き込むことができるだけでカテゴリ固有ではありません...
私のコードはこれまでのところ....
<?php
//Identify current Post-Category-ID
foreach((get_the_category()) as $category)
{
$postcat= $category->cat_ID;
$catname =$category->cat_name;
}
?>
//Print category ID
<h2><?php echo $catname; ?></h2>
<?php
$thumbnails = get_posts();
foreach ($thumbnails as $thumbnail) {
if ( has_post_thumbnail($thumbnail->ID)) {
echo '<li><a href="' . get_permalink( $thumbnail->ID ) . '" title="' . esc_attr( $thumbnail->post_title ) . '">';
echo get_the_post_thumbnail($thumbnail->ID, 'full');
echo '</a></li>';
}
}
?>
どのカテゴリから投稿を表示するかを判断するためのコードがすでにあります。そのカテゴリ内のすべての投稿を取得する方法は次のとおりです。
// create a query to grab our posts in category of ID $postcat
$q = new WP_Query(array( 'cat' => $postcat));
if($q->have_posts()){
// foreach post found
while($q->have_posts()){
$q->the_post();
// code for displaying each post goes here
}
// cleanup after the WP_Query, reset the post data
wp_reset_postdata();
} else {
// no posts were found!
}
クエリを実行するためにquery_posts
を絶対に使用しないでください。投稿が実際に見つかったかどうかを常に確認し、そして自分自身の後で常にクリーンアップします。
クエリに関するその他の引数については、こちらを参照してください。
archive.phpには、それ以外にも簡単な方法があります。
そのコードを置き換える
<?php
get_template_part('loop', $the_template_part);}
?>
このコードで
<?php
if (is_category('CAT_ID'))
{get_template_part('loop2', $the_template_part);
}
else {get_template_part('loop', $the_template_part);}
?>
次に、カスタムループを好きなように作成し、loop2という名前を付けます。カスタムループ内のカテゴリ投稿のみを表示して、必要なものを正確に指定します。
特定のカテゴリの下に投稿するだけの自分のカテゴリページ用のカスタムテンプレートを作成しようとしています。
あなたは私たちがWordPressに組み込まれたカテゴリーテンプレートを持っていることを知っています。
http://codex.wordpress.org/Category_Templates
あなたは本当にそのカテゴリのcategory-slug.phpを作成してそれで完成させることができます。カテゴリページにそのカテゴリを表示させ、子供や他のカテゴリに含まれる可能性のある投稿を表示したくないと言っているのでない限り。