Re: カスタム分類

ホーム フォーラム その他 カスタム分類 Re: カスタム分類

#66193

uishi
参加者

nanbu様、レスありがとうございます。

(1)

バッグ

 ┣A

 ┗B

腕時計

 ┣A

 ┗B

(2)

A

┣バッグ

┗腕時計

B

┣バッグ

┗腕時計

の両方のウィジットを各々設置したいのです。

有名ブランドだと幅広い商品を扱っているので、

商品からさがすと、ブランドからさがすの2通りあったほうがいいと思うのです。

でリンク先の問題はおいておいて、ウィジットに親子関係のないカスタム分類を階層的に表示するのに

function my_get_sub_tax_post($tax_one,$tax_two,$cat,$sub_cat){
$args = array(
'posts_per_page'=>1,
'tax_query' => array(
array(
'taxonomy' => $tax_one,
'terms' => array($cat->term_taxonomy_id),
'field' => 'term_taxonomy_id',
'operator' => 'AND'
),
array(
'taxonomy' => $tax_two,
'terms' => array($sub_cat->term_taxonomy_id),
'field' => 'term_taxonomy_id',
'operator' => 'IN'
),
),
);
query_posts($args);
if(have_posts()){
echo '<li><a href="'.esc_html(get_bloginfo('url')).'/?'.esc_html($tax_one).'='.esc_html($cat->slug).'&'.esc_html($tax_two).'='.esc_html($sub_cat->slug).'" />' . esc_html($sub_cat->name) . '</a></li>';
}
}

ウィジットの本体に

$categories = get_terms($tax_one);
foreach ( $categories as $cat ) {
echo '<li>' . esc_html($cat->name) . '<ul>';
$sub_cats = get_terms($tax_two);

foreach ( $sub_cats as $sub_cat ) {
my_get_sub_tax_post($tax_one,$tax_two,$cat,$sub_cat);
}
echo '</ul></li>';
}

として一応

表示するんじゃないかと思うんですが、

もっとスマートな方法がないかなと思うのと、

絞り込んだ件数をゲットで出来るような関数はないものかと思って

投稿してみました。