WordPress で任意の値でソートしたいなーと思ってたらカスタムフィールドに入れた値でのソートが簡単にできたようなのでメモ。
global $query_string;
query_posts($query_string . '&orderby=meta_value_num&meta_key=my-sort&order=ASC');
query_posts() 関数の引数に orderby を指定する事によって並び替えの制御ができる。meta_value_num と指定すればカスタムフィールドの値を数値として、 meta_value と指定すれば文字列としてソートを行う。
そして meta_key にカスタムフィールドのキーを指定する。これで並び替えは完了。order の ASC は昇順、もちろん DESC にすると降順になる。
$query_strong はそのページの元のクエリを引き継ぐ為に指定する。これがないと、例えばカテゴリー別の一覧などを表示しようとしても思ったように動かないはず。
ちなみに並び替えに指定できるキーは他には以下のものがある。
none | 順番指定なし(バージョン 2.8 以降のみ) |
---|---|
ID | postID順 |
author | 投稿者順 |
title | タイトル順 |
date | 日付順 |
modified | 最終更新日順 |
parent | 親post/pageID順 |
rand | ランダム |
comment_count | コメント数(バージョン 2.9 以降のみ) |
menu_order | ページ順,固定ページなどで使用されるはず |
結構いろいろあるね。
Sponsored Link