• いつもお世話になっております。

    管理画面のソート機能を追加しました。
    指名日でソート、開始時間でソートはそれぞれできたのですが、
    2019/07/20 15:00
    2019/07/20 16:00
    2019/07/20 13:00
    2019/07/21 16:00
    のようになってしまうのを、
    2019/07/21 16:00
    2019/07/20 16:00
    2019/07/20 15:00
    2019/07/20 13:00
    このように変更したいのですが、どのようにすればよいのでしょうか。
    お力をお貸しください。
    現状は下記のように処理しています。

    function custom_orderby_columns($vars) {
    if (isset($vars[‘orderby’]) && ‘指名日’ == $vars[‘orderby’]) {
    $vars = array_merge($vars, array(
    ‘meta_key’ => ‘指名日’,
    ‘orderby’ => array(‘meta_value’ => ‘desc’,)
    ));
    }
    if (isset($vars[‘orderby’]) && ‘開始時間’ == $vars[‘orderby’]) {
    $vars = array_merge($vars, array(
    ‘meta_key’ => ‘開始時間’,
    ‘orderby’ => ‘meta_value’
    ));
    }
    return $vars;
    }

    function custom_sortable_columns($sortable_column) {
    $sortable_column[‘指名日’] = ‘指名日’;
    $sortable_column[‘開始時間’] = ‘開始時間’;
    return $sortable_column;
    }

    add_filter(‘request’, ‘custom_orderby_columns’);
    add_filter(‘manage_edit-yoyakukanri_sortable_columns’, ‘custom_sortable_columns’);

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター まーちゅう

    (@rocketmartue)

    指名日の'orderby' => array( 'meta_valie' => 'desc')

    'orderby' => 'metavalue',
    'order' => 'DESC',

    に変更
    開始時間の方にorder => 'DESC',
    を追加するとどうでしょうか?
    (DESC は、小文字でなく大文字で)

    こんにちは

    投稿が登録される際に、save_post のフックか何かで指名日と開始時間を結合した文字列を、別途 post_meta に保存します。
    その値でのソートにしてはどうでしょうか。

    同じ値を2か所で持つことになりますが、save_post を使っておけば、通常の運用で値に矛盾が生じることは無いと思います。

2件の返信を表示中 - 1 - 2件目 (全2件中)

トピック「複数条件によるソート」には新たに返信することはできません。