タクソノミーで同じカテゴリの関連商品を表示
2016年12月1日商品詳細のページで、同じブランドの商品を表示したいと思ったけど、タクソノミーで分類されてるので少し手間取った。
query_postsにどう入れればいいかまでの下りがこれ。
<?php //get_the_terms タクソノミー名を入れる今回は'brands' //$tarmsにはタクソノミーのオブジェクトが入ってると思う $tarms = get_the_terms( $post -> ID ,'brands' ); // slugから現在のsignleで表示されてるslugを抜き取る $tarslug = $tarms[0]->slug; $args = array( 'posts_per_page' => 5,//表示件数 'post__not_in' => array($post->ID),//現在表示されているのは除く 'tax_query' => array( array( 'taxonomy' => 'brands', 'field' => 'slug', 'terms' => $tarslug, ), ), 'orderby' => 'rand',//ランダムに表示するが、Post type orderがあるとそっちを優先するので次の関数でそのフィルタを削除 ); //Post type orderの影響でランダムに出来ないので、とりあえずフィルタで削除 remove_all_filters('posts_orderby'); query_posts( $args ); ?>
一番困ったのはPost type orderがランダムの指定を邪魔してた。
filterをリムーブできる関数を知ったので、それを叩いてから入れた。