サポート » 使い方全般 » カスタムフィールドの値でソート

  • 解決済 onsign

    (@onsign)


    現在カスタムフィールドにop_dateという項目を作り、
    そこに「20110101」といった日付をテキストで入力しています。

    カテゴリーページにて一覧を表示させるのに、この値で並べ替えをしたいのですが、
    色々なページを見ても並び順が変わらず困っています。

    またこのソートをボタンで切り替える事もプラグインなしで可能でしょうか?
    ご教授頂けると幸いです。

    <?
    query_posts(array(
    ‘meta_key’ => op_date,
    ‘orderby’ => meta_value_num,
    ‘order’ => DESC,
    ));
    while (have_posts()): the_post();

    $ymd = date(‘Y年m月d日’,strtotime(post_custom(‘op_date’)));

    echo ‘<div>’;
    echo ‘<div class=”post”>’;
    echo ‘<h2>’.the_title().'</h2>’;
    echo ‘<p>’.$ymd.'</p>’;
    echo ‘</div>’;
    echo ‘<hr>’;

    ?>
    <?php endwhile; wp_reset_query(); ?>

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 'orderby' => meta_value_num
    ではなくて、
    'orderby' => meta_value
    でできると思いますよ。

    さらに「20110101」は文字列なので、これを日付としてソートしたい場合は
    posts_orderby というフィルタを使うとよいです。

    sano_koyuki

    (@sano_koyuki)

    さらに「20110101」は文字列なので、これを日付としてソートしたい場合は
    posts_orderby というフィルタを使うとよいです。

    すっかりはまっていたのですが、この部分本当に助かりました。
    ありがとうございます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタムフィールドの値でソート」には新たに返信することはできません。