サポート » 使い方全般 » 投稿記事のソートをドロップダウンメニューでしたい

  • 解決済 tanaka_kyousuke

    (@tanaka_kyousuke)


    こんにちは。

    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件中)
  • トピック「投稿記事のソートをドロップダウンメニューでしたい」には新たに返信することはできません。