gooodmark

goodなWebサイトを厳選ブックマーク!デザインやディレクションの参考にどうぞ。

516bookmark

投稿日とカスタムフィールドの日付で並び替え

・カスタムフィールド:日付をyyyy.mm.ddで入力(例:提出日)
・固定ページテンプレートでページ作成の場合
・セレクトタグで並び替えできるようにする

<form name="narabikae" method="get" class="form sortlist">
<select name="sort" onChange="document.forms['narabikae'].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>
<option value="sort3"<?php if(isset($_REQUEST['sort']) && $_REQUEST['sort'] == 'sort3') echo ' selected="selected"';?>>提出日が新しい順</option>
<option value="sort4"<?php if(isset($_REQUEST['sort']) && $_REQUEST['sort'] == 'sort4') echo ' selected="selected"';?>>提出日が古い順</option>
</select>
</form>

<?php $sortset = $_GET['sort']; ?>
<?php $sortall = array(
  "sort1" => 'order=DESC&paged=',
  "sort2" => 'order=ASC&paged=',
  "sort3" => 'order=DESC&orderby=meta_value&meta_key=提出日&paged=',
  "sort4" => 'order=ASC&orderby=meta_value&meta_key=提出日&paged=',
); ?>

<?php if($sortset != '') {
       $sort = $sortall[$sortset];
    } else {
       $sort = $sortall["sort1"];} ?>

<?php query_posts($sort . $paged); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
// ここにループ
<?php endwhile; endif; ?>