カスタムフィールドでソート

記事一覧の並び順はデフォルトで日付が新しい順になっている。
これを変更するには、ループの直前で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]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください