カスタムフィールドの値で記事を並べ替える。

WordPressをCMSとして使うような場合だと、記事を任意の順番で並べ替えたい場合とかが希にあったりするわけで。
query_postsにパラメータを渡すことで実現できます。

[php]
query_posts(array(
"orderby" =>"meta_value",
"meta_key" =>"my_date",
"meta_value" =>date(‘Y-m-d’),
"meta_compare" =>">=",
"order" =>"ASC"
)
);
[/php]

orderbyにmeta_valueを設定することで、meta_keyに設定したキーで並べ替えることができます。
また、meta_compareに”<,<=,=,>=,>”の不等号を設定することで、さらに絞り込むことができます。
今回は、my_dateに日付をY-m-dの形式で放り込んであるので、それを現在の日付と比較して、一致するか、まだ先の場合のみの記事を持ってくるようにしています。

ただし、基本的に文字列として比較されることになるので、そこら辺は注意が必要です。

イベント関係のサイトでは結構役に立つ小技だと思います。

Comments

“カスタムフィールドの値で記事を並べ替える。” への2件のフィードバック

  1. やじおのアバター
    やじお

    query_posts

    の中です。

  2. やじおのアバター
    やじお

    に今日より古いものは削除するにはどうしたらよいでしょうか?