例えばこんなカスタムフィールドがあるとします。
Custom Field Templateの設定
[number] label = 番号 type = text
上記の場合、スラッグがnumberとなります。このnumberの値を数値(int)として記事をソートをするにはちょっと工夫が必要です。
通常、カスタムフィールドの値で記事のソートを行う際は以下のようにquery_postsの引数に「meta_key」「orderby = meta_value」を指定することで可能となります。
$args = array( 'meta_key' => 'number', 'orderby' => 'meta_value', 'order' => ASC ); query_posts( $args );
しかし、カスタムフィールドのtype=textの値は文字(string)として扱われてしまう為、期待通りのソート結果は得られません。
そこで以下のように、query_postsの引数に「meta_query」でデータ型も指定してやると期待通りのソートが可能になります。
$args = array( 'meta_query' => array( array( 'key' => 'number', 'type' => 'NUMERIC' ) ), 'orderby' => 'meta_value', 'order' => ASC ); query_posts( $args );
- 関連記事
-
-
WordPress 現在のポストタイプ名を取得 2015/09/01
-
WordPress 隣接する記事へ移動するページナビ 2015/07/28
-
query_posts カスタムフィールドで入力した数値で記事をソートする方法 2015/05/23
-
WordPress カスタムポストタイプ名を取得 2015/03/11
-
WordPress 非ログイン時はログイン画面へ飛ばす 2015/03/10
-