投稿記事のソートをドロップダウンメニューでしたい
-
こんにちは。
query_postsを使用してフォームからソートしたい形式を選んで、投稿記事の順番を変えたいと思っています。以下の記述をトップページ(home.php)に貼り付けてるんですが、pagenationを利用して複数ページにした時、うまくソートしてくれません。
<form name="irekae" method="post" id="sort_form" class="sort_form"> <select name='narabi' onChange="document.forms['irekae'].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> <option value="sort4"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort4') echo ' selected="selected"';?>>五十音順(わ~あ)</option> <option value="sort5"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort5') echo ' selected="selected"';?>>アクセス数の多い順</option> <option value="sort6"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort6') echo ' selected="selected"';?>>アクセス数の少ない順</option> </select> </form> <?php $sortset = $_POST['narabi']; ?> <?php $sortall = array( "sort1" => 'order=DESC', "sort2" => 'order=ASC', "sort3" => 'order=ASC&orderby=meta_value&meta_key=furigana', "sort4" => 'order=DESC&orderby=meta_value&meta_key=furigana', "sort5" => 'order=DESC&orderby=meta_value_num&meta_key=views', "sort6" => 'order=ASC&orderby=meta_value_num&meta_key=views' ); ?> <?php $sort = $sortall[$sortset]; ?> <?php query_posts($query_string . $sort); ?> </div> <?php if(have_posts()): while(have_posts()): the_post(); ?>
どうも、ページ移動した時に、変数がリセットされてしまってソートの順番がデフォルトに戻ってしまうようです。phpは、素人同然で、悪戦苦闘してなんとかここまで組み立てたのですが、ココで詰まってしまいました。
どなたかやり方をご存知のかた、いらっしゃいましたらよろしくおねがします。
※補足 投稿記事にカスタムフィールドとして、furigana、viewsを利用しています。
それぞれ、五十音順(ひらがな読み)、アクセス数の値を記入しています。試しに作ってるサイトです。
ここの中央付近にあるドロップダウンメニューです。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「投稿記事のソートをドロップダウンメニューでしたい」には新たに返信することはできません。