Re: カスタム分類
2013年2月20日 12:59 AM
#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>';
}
として一応
表示するんじゃないかと思うんですが、
もっとスマートな方法がないかなと思うのと、
絞り込んだ件数をゲットで出来るような関数はないものかと思って
投稿してみました。