taketakeさん、こんにちは。
以下のような手順になろうかと思います。
1.get_term_byを使って、カテゴリの情報を取得。value と taxonomy パラメータは、get_query_var( ‘term’ ) と get_query_var( ‘taxonomy’ ) で取得
2.parentが0かどうかで親/子を判別
3.親の場合は、wp_list_categoriesで子カテゴリーを表示。子の場合は、get_posts、またはquery_postsを使い、商品ページ一覧を表示
jim912さん 早速のご回答ありがとうございます!
手順は理解できたのですが、書き方がわかりません・・・
<?php
$term = get_term_by(
‘slug’,
get_query_var(‘term’),
get_query_var(‘taxonomy’)
);
?>
この先どのように書けばいいのでしょうか?
まったくの無知で大変申し訳ございません。
どうぞよろしくお願いいたします。
#未検証
<?php
$term = get_term_by(
'slug',
get_query_var( 'term' ),
get_query_var( 'taxonomy' )
);
if ( $term->parent ) { // 子?
$posts = get_posts( array(
'taxonomy' => get_query_var( 'taxonomy' ),
'term' => get_query_var( 'term' ),
) );
?><ul><?php
foreach ( (array) $posts as $post ) :
setup_postdata( $post );
printf(
'<li><a href="%1$s">%2$s</a></li>',
esc_url( get_permalink( get_the_ID() ) ),
esc_html( get_the_title( get_the_ID() ) ),
);
endforeach;
?></ul><?php
wp_reset_postdata();
} else {
wp_list_categories( array(
'taxonomy' => get_query_var( 'taxonomy' ),
'child_of' => $term->term_id,
) );
}
?>
マークアップはお好みで◎
kzさん、ご回答いただきましてありがとうございます。
泣けるほどうれしいです!!
親ページに子ページのカテゴリーを表示は出来たのですが、
子には商品ページ一覧を表示させる事が出来ませんでした。
お時間がある時に教えていただけたらと思います。
ド初心者で大変申し訳ございません。
どうぞよろしくお願いいたします。
ぁ、普通にループ回せば良い気が。
(略)
if ( $term->parent ) { // 子?
?><ul><?php
while ( have_posts() ) : the_post();
printf(
'<li><a href="%1$s">%2$s</a></li>',
esc_url( get_permalink() ),
esc_html( get_the_title() ),
);
endwhile;
?></ul><?php
} else {
(略)