カスタムフィールドの値でソートした際の並び順
-
カスタムフィールド「release」に商品の発売日を入れ、ソート表示出来るように以下のコードを書いています。
<form name="change" method="get" id="sort_form5" class="sort_form5"> <select name='sort' onChange="document.forms['change'].submit()" > <option value="sort1"<?php if(isset($_REQUEST['sort']) || $_REQUEST['sort'] == 'sort1') echo ' selected="selected"';?>>発売日が新しい順</option> <option value="sort2"<?php if(!isset($_REQUEST['sort']) && $_REQUEST['sort'] == 'sort2') echo ' selected="selected"';?>>発売日が古い順</option> </select> </form> <?php $sortset = $_GET['sort']; ?> <?php $sortall = array( "sort1" => 'order=DESC&orderby=meta_value&meta_key=release&posts_per_page=20&paged=', "sort2" => 'order=ASC&orderby=meta_value&meta_key=release&posts_per_page=20&paged=' ); ?> <?php if($sortset != '') { $sort = $sortall[$sortset]; } else { $sort = $sortall["sort1"];} ?> <?php query_posts($sort . $paged); ?>
無事に表示はされるのですが、問題はここからです。
商品が3つあり、それぞれのrelease値は以下の通りです。- 2014年5月1日
- 2014年5月15日
- 2014年5月23日
発売日の新しい順で並べたい時の理想の並び順は3、2、1の順ですが、実際に上記コードで表示された並び順は1、3、2の順になってしまいます。
コードの書き方が悪いのでしょうか。解決案をご教授下さい。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「カスタムフィールドの値でソートした際の並び順」には新たに返信することはできません。