カスタム投稿タイプで、特定カテゴリーを除外したソート機能(価格別)
-
アーカイブページ(archive.php)内で、カテゴリー別の商品一覧を表示させた際、
追加機能として、価格順によるソート機能を実装させたいと考えています。ソート機能自体は実装できたのですが、特定のカテゴリーを除外したい場合に
うまく表示させることができません。具体的には、’sold-out’というカテゴリーを除いた商品一覧を表示させたいと思っています。
基本情報は以下の通りです。
【カスタム投稿タイプ】
・post_type は、’item’
・taxonomy は、’item-cat’【価格】
・カスタムフィールドの値、’price’【除外したいカテゴリ】
・terms は、 ‘sold-out’「sort1」「sort2」は、価格順によるソート表示ができましたが、全カテゴリが表示対象となっています。
「sort3」は、’tax_query’が使えないのか、商品一覧すら出てきません。すみませんが、お分かりの方ぜひご教示ください。
<form name="narabikae" method="get" id="sort_form5" class="sort_form5"> <select name='narabi' onChange="document.forms['narabikae'].submit()" > <option value="sort1"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort1') echo ' selected="selected"';?>>価格の低い順</option> <option value="sort2"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort2') echo ' selected="selected"';?>>価格の高い順</option> <option value="sort3"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort3') echo ' selected="selected"';?>>価格の高い順</option> </select> </form> <?php $sortset = $_GET['narabi']; ?> <?php $sortall = array( "sort1" => 'post_type=item&taxonomy=item-cat&order=ASC&orderby=meta_value_num&meta_key=price&posts_per_page=-1&paged=', "sort2" => 'post_type=item&taxonomy=item-cat&order=DESC&orderby=meta_value_num&meta_key=price&posts_per_page=-1&paged=', "sort3" => array( 'tax_query' => array( 'taxonomy' => 'item-cat', 'field' => 'slug', 'terms' => 'sold-out' , 'operator' => 'NOT IN' ), 'post_type' => 'item', 'posts_per_page' => -1 , 'order' => 'DESC', 'orderby' => 'meta_value_num', 'meta_key' => 'price', 'paged=', ), ); ?> <?php if($sortset != '') { $sort = $sortall[$sortset]; } else { $sort = $sortall["sort1"];} ?> <?php echo $sort; ?> <?php query_posts($sort . $paged); ?>
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「カスタム投稿タイプで、特定カテゴリーを除外したソート機能(価格別)」には新たに返信することはできません。