「親カテゴリB」の子カテゴリーに属する記事を取得するということでいいのでしょうか?
勘違いしていたらごめんなさい。
カテゴリー オブジェクトには親カテゴリーの ID を取得することができる parent メンバー変数があるのでこれを使えばいいのではないでしょうか?
$parent_id = get_cat_ID( '親カテゴリB' );
if ( $parent_id ) {
$categories = get_the_category( $post->ID );
$ids = array();
foreach ( $categories as $category ) {
if ( $category->parent === $parent_id ) {
array_push( $ids, $category->cat_ID);
}
}
$query = new WP_Query( array(
'post__not_in' => array( $post->ID ),
'category__in' => $ids,
'posts_per_page'=> 10,
'orderby' => 'rand',
) );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
the_title();
}
}
wp_reset_postdata();
}
ishitakaさん
お返事ありがとうございます!!!
説明がヘタクソですみません。。。
やりたいことは、たとえば
今見ている記事に、小カテゴリ1・2・4が付いていたら
小カテゴリ4がついた記事一覧を表示させたいです。
いただいたものをsingle.phpに入れてみたのですが
何も表示がされませんでした…
PHP初心者なもので、とても助かります(>_<)
よろしくお願いいたします。
そのままのコードでは動作しません。多少手直しが必要です。
まず、コードは php コードなので、<?php
から ?>
で囲みます。
$parent_id = get_cat_ID( '親カテゴリB' );
の ‘親カテゴリB’ は実際のカテゴリー名(スラッグ名ではない)に置き換えてください。
the_title();
の部分は、実際に表示するコードを記述する必要があります。これは示されたページを参考にしてください。
WP_Query のパラメーターも調整する必要があります。
ishitakaさん
すみません!!
もう一度、いただいたソースをそのままその部分以外を
それぞれ<?php ?>で囲んだらできました!!
半分諦めかけていた所にお返事いただけて
本当に助かりました!!
本当に本当にありがとうございました!!
解決したようでよかったです(「解決済み」にマークしてくださいね)。
コードは短いと思いますので理解して使用するといいと思います。