[WordPress]カスタムフィールドの値で記事一覧を取得

カスタムフィールドの値で記事一覧を取得する場合はWP_Queryに渡すクエリにmeta_queryの内容を記述することで取得することができる

$args = Array(
            'post_type' => 'POST',
            'cat' => 123,/* カテゴリIDEALLY */
            'paged' => get_query_var( 'paged' ),/* ページネーションする場合は必須 */
            'meta_query' => array(
                        'key' => 'maker',
                        'value' => 'Sony',
                        'compare' => 'LIKE',
                        'orderby' => 'maker',
                        'order' => 'DESC'
                    );,
        );
	$wp_query = new WP_Query( $args );
	while ( $wp_query->have_posts() ) : $wp_query->the_post();
?>

例はmakerという項目にSonyという文字が含まれている場合の記事一覧を表示させている。

 

meta_query' => array(
            array(	
                   'key'=>'wakeup__at',
                   'value'=>array( '05:00:00', '07:00:00' ),
                   'compare'=>'BETWEEN',
                   'type'=>'TIME'
            )
)

5:00:00から07:00:00の時間の間で検索する場合、TypeはTimeにする必要がある

データのタイプは以下の通り

データ型 意味
‘CHAR’ 文字
‘NUMERIC’ ‘SIGNED’の別名
‘DECIMAL’ 浮動小数点数
‘SIGNED’ 整数(符号あり)
‘UNSIGNED’ 整数(符号なし)
‘DATE’ 日付
‘DATETIME’ 日時
‘TIME’ 時刻
‘BINARY’ バイナリー

compareの種類は以下の通り

データ型 意味 有効なデータ型
‘=’ 値と一致する すべて(省略時)
‘!=’ 値と一致しない すべて
‘>’ 値より大きい 数値系・日時系
‘>=’ 値以上 数値系・日時系
‘<‘ 値より小さい 数値系・日時系
‘<=’ 値以下 数値系・日時系
‘LIKE’ 値で指定した文字列に一致する ‘CHAR’
‘NOT LIKE’ 値で指定した文字列に一致しない ‘CHAR’
‘IN’ 値(配列)で指定した何れかに一致する すべて
‘NOT IN’ 値(配列)で指定した何れにも一致しない すべて
‘BETWEEN’ 2つの値で指定した範囲内(境界を含む) 数値系・日時系
‘NOT BETWEEN’ 2つの値で指定した範囲外 数値系・日時系

コメントを残す

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