WordPress
カスタマイズ事例

WORDPRESS CUSTOMIZATION

meta_queryを使って、カスタムフィールドの条件で絞り込んだ記事一覧を取得する テーマ販売あり

たとえば、
・これから開催するセミナー
・現在セミナー参加の受付をおこなっているセミナー
上記を満たすセミナーだけトップページに表示したい、みたいな要望があったとして、それに該当するセミナー一覧を取得する方法をご紹介します。

まずカスタムフィールドにセミナー開催日(ここでは semi_date)とセミナー参加受付締切日(ここでは semi_deadline)を追加します。

そして、meta_query を使ってメタ情報(カスタムフィールド)の条件を設定して取得します。

// カスタム投稿名
$post_type = 'seminar';

$current_date = date_i18n( 'Ymd' ); //今日の日付取得

$posts = get_posts( array(
	'post_type' => $post_type,
	'posts_per_page' => -1,
	'meta_key' => 'semi_date', //セミナー開催日
	'orderby' => 'meta_value',
	'order'=> 'ASC', //昇順
	'type' => 'DATE', //日付
	'meta_query' => array(
		'relation' => 'AND',
		array(
			'key' => 'semi_date', //セミナー開催日
			'value' => $current_date,
			'compare' => '>=', //セミナー開催日が今日よりあと
			'type' => 'DATE' //日付の比較
		),
		array(
			'key' => 'semi_deadline', //セミナー参加受付締切日
			'value' => $current_date,
			'compare' => '>=', //セミナー参加受付締切日が今日よりあと
			'type' => 'DATE' //日付の比較
		),
	),
));

これで「これから開催する、かつ参加申し込みも受け付け中のセミナー」の記事一覧を取得できました。

あとはいつもどおり foreach なり while なりで一覧表示すれば完成です。
 
余談ですが、meta_query では複合的な絞り込み条件にも対応できます(WordPress4.0以降)。
たとえばこんな感じです。

// カスタム投稿名
$post_type = 'seminar';

$current_date = date_i18n( 'ymd' ); //今日の日付取得

$posts = get_posts( array(
	'post_type' => $post_type,
	'posts_per_page' => -1,
	'meta_key' => 'semi_date', //セミナー開催日
	'orderby' => 'meta_value',
	'order'=> 'ASC', //昇順
	'type' => 'DATE', //日付
	'meta_query' => array(
		'relation' => 'AND',
		array(
			'key'     => 'semi_date', //セミナー開催日
			'value'   => $current_date,
			'compare' => '>=', //セミナー開催日が今日よりあと
			'type'    => 'DATE' //日付の比較
		),
		array(
			'key'     => 'semi_deadline', //セミナー参加受付締切日
			'value'   => $current_date,
			'compare' => '>=', //セミナー参加受付締切日が今日よりあと
			'type'    => 'DATE' //日付の比較
		),
		array( //このように条件をネストできる
			'relation' => 'OR',
			array(
				'key'     => 'custom_field1',
				'value'   => 1,
				'compare' => '='
			),
			array(
				'key'     => 'custom_field2',
				'value'   => 1,
				'compare' => '='
			)
		)
	),
));

27-39行目にあるように、ORやAND条件をネストにすることも可能です。

【セミナーやイベントの参加申込み受付用WordPressテーマを購入できます】

現在あなたが利用されているWordPressテーマを活かしたまま、セミナーやイベントの参加申込み受付ができるWordPressテーマを、子テーマとして購入できます。
テーマの内容についてはこちらをご覧ください。
WordPress製 セミナーやイベントの参加申込み受付システム

ダウンロードしたファイルに同梱の手順に従い設定をおこない、子テーマを有効化するだけで、現在お使いのデザインテーマにセミナーやイベントの参加申込み受付機能が自動付与されます。
なお、デザインは入っておりません。自由にstyleを設定してください。
※ テーマは買い切りです
※ 自由に改変してお使いいただいて構いません
※ すでに子テーマでサイト運用されている方は、当該子テーマをマージしてください


また、本テーマには、セミナーやイベントの参加申込み受付機能を実現するために必要な次の事例解決も含まれています。


【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!