web-dev-qa-db-ja.com

カテゴリに関連するすべての投稿のみを表示する

特定のカテゴリの下に投稿するだけの自分のカテゴリページ用のカスタムテンプレートを作成しようとしています。現時点では、私はすべての投稿を引き込むことができるだけでカテゴリ固有ではありません...

私のコードはこれまでのところ....

<?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>';
    }
}
?>
2
calebo

どのカテゴリから投稿を表示するかを判断するためのコードがすでにあります。そのカテゴリ内のすべての投稿を取得する方法は次のとおりです。

// 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を絶対に使用しないでください。投稿が実際に見つかったかどうかを常に確認し、そして自分自身の後で常にクリーンアップします。

クエリに関するその他の引数については、こちらを参照してください。

http://codex.wordpress.org/Class_Reference/WP_Query

1
Tom J Nowell

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という名前を付けます。カスタムループ内のカテゴリ投稿のみを表示して、必要なものを正確に指定します。

1
Shady M Rasmy

特定のカテゴリの下に投稿するだけの自分のカテゴリページ用のカスタムテンプレートを作成しようとしています。

あなたは私たちがWordPressに組み込まれたカテゴリーテンプレートを持っていることを知っています。

http://codex.wordpress.org/Category_Templates

あなたは本当にそのカテゴリのcategory-slug.phpを作成してそれで完成させることができます。カテゴリページにそのカテゴリを表示させ、子供や他のカテゴリに含まれる可能性のある投稿を表示したくないと言っているのでない限り。

1
Ipstenu