ダリの雑記:WEBプログラム版

カスタムフィールド並び替えが数字の場合の注意点【WordPress】

カスタムフィールド順に並び替える場合、query_postsを使うと、こんな感じになります。

[PHP]
query_posts(
array(
"orderby" => "meta_value",
"meta_key" => "(カスタムフィールドのキー)",
"order" => "ASC"
)
);
[/PHP]

しかし各投稿のカスタムフィールドの中身が、1,2,3,4,5,6,7,8,9,10,11,12・・・

となっている場合、順番が

1,11,12,2,3,4,5,6,7,8,9・・・

となってしまいます。

このような場合、orderbyはmeta_valueではなく、meta_value_numとしなくてはなりません。

[PHP]
query_posts(
array(
"orderby" => "meta_value_num",
"meta_key" => "(カスタムフィールドのキー)",
"order" => "ASC"
)
);
[/PHP]

これで、並び替えの内容が数字と判断され、数字の順番通りに並びます。

参考サイト

query_posts:WordPress私的マニュアル

テンプレートタグ/query posts - WordPress Codex 日本語版

 

 

モバイルバージョンを終了