私はguides
と呼ばれるカスタム投稿タイプを持っています、投稿が入ることができる3つのカテゴリーがあります、3つのカテゴリーはidが87
のカテゴリーの子カテゴリーです。
現在私はこれらのカテゴリをループしてそれらの名前やIDを表示することができます。各カテゴリをループして、そのカテゴリの投稿を表示する必要があります。私はその方法を理解できないようです。これは私が持っているコードで、カテゴリをループしてそれらのIDを表示します。このループで私は投稿を表示したいと思います。これどうやってするの?
$categories = get_categories( array(
'orderby' => 'name',
'child_of' => 87,
'order' => 'ASC'
) );
foreach( $categories as $category ) {
echo $category->term_id;
}
あなたのスタートはもう大丈夫ですね。 term_id
の$category
を含む投稿を取得する必要があります。
$categories = get_categories( array(
'orderby' => 'name',
'child_of' => 87,
'order' => 'ASC'
) );
foreach( $categories as $category ) {
// display current term name
echo $category->name;
// display current term description, if there is one
echo $category->description;
// get the current term_id, we use this later in the get_posts query
$term_id = $category->term_id;
$args = array(
'post_type' => 'guides', // add our custom post type
'tax_query' => array(
array(
'taxonomy' => 'category', // the taxonomy we want to use (it seems you are using the default "category" )
'field' => 'term_id', // we want to use "term_id" so we can insert the ID from above in the next line
'terms' => $term_id // use the current term_id to display only posts with this term
)
)
);
$posts = get_posts( $args );
foreach ($posts as $post) {
// display post title
echo $post->post_title;
// display post excerpt
echo $post->post_excerpt;
// or maybe you want to show the content instead use ...
#echo $post->post_content;
}
}
私が指摘したように、あなたがワードプレスのデフォルトの「カテゴリ」分類法またはカスタム分類法を使用しているかどうかはあなたの質問からは明らかではない。
ご覧のとおり、これは最低限必要なコードです。だから私はあなたがそれを少し拡張する必要があるだろうことを確信しています、例えば投稿やものにパーマリンクを追加すること。
get_posts()
関数に関するコーデックスも見てください。 ここget_posts()
を持つtaxonomy
クエリについての情報を得ます。
使用可能なすべての分類パラメーターについては、wp_query()
codex here をご覧ください。
ここでは、場合によっては(投稿が複数のサブカテゴリに属している場合など)、単一のarray of ID´s
ではなくterm_id
を使用できることもあります。
'field' => 'term_id',
'terms' => array( 103, 115, 206 ),