記事一覧の並び順はデフォルトで日付が新しい順になっている。
これを変更するには、ループの直前でquery_posts()を使いorderbyパラメータを指定する。記事タイトルやコメント数のほか、カスタムフィールドの値によって並び替えることでもできる。カスタムフィールドでソートする場合には、orderby=meta_value の他に meta_key=’キー名’ を指定する。
[PHP]
// 表示
[/PHP]
ただしカスタムフィールドは文字型のため、数値としてソートしたい場合はアクションフックの posts_orderby を併用するとよい。
[PHP]
function my_orderby($orderby) {
global $wpdb;
if (get_query_var(‘meta_key’) == ‘キー名’) {
$orderby = “CAST($wpdb->postmeta.meta_value AS UNSIGNED) ASC”;
}
return $orderby;
}
add_filter(‘posts_orderby’, ‘my_orderby’);
[/PHP]