WordPress

wordpressでイベント開催情報を作る方法

2012.06.24

第6回WordBench大阪@dk45blogさんのセッション

自動で管理する「イベント開催情報」
がこれから何かと使えそうな予感がしたのでメモしておきます。

イベント情報をwordpressで作った事はあるのですが今まではMy Calendarなどのプラグインを使っていました。

 
でも、イベントの開催日時と情報だけを掲載するなら、わざわざプラグインを使わなくっても投稿とテーマにちょろっと書くだけでそれなりのイベント開催情報を管理する事ができます。

投稿でイベントを管理する

投稿のカスタムフィールドテンプレートを開催日時として使用します。
 
私はいつもCustom Field Templateを使ってカスタムフィールドを作ってたんですが
今回教えてもらったAdvanced Custom Fieldsが便利そう!!

日付がカレンダーピッカーから選択できるようです。
イベント開催情報を管理するならピッカーがあったほうが良いですよね^^
 

Advanced Custom Fields

未来と過去のイベントの表示を振り分ける

これから開催される未来のイベントと終了した過去のイベントと
表示を振り分ける方法です。
 
書き出したい場所に以下のコードを書くだけ!
 

<h2>今後開催されるイベント</h2>
	<?php
	$current_date = date_i18n( 'Y/m/d' );
	$args = array(
	'showposts' => '30',
	'orderby' => 'meta_value',
	'meta_key' => 'final_day',
	'order' =>'ASC',
	'meta_query' => array(
	array(
	'key' => 'final_day',
	'value' => $current_date,
	'compare' => '>=',
	'type' => 'DATE'
)
)
);
	$output = '';
	query_posts( $args );
	if ( have_posts() ) :
		$output .= '
<ul classs=&quot;pagelist&quot;>';
		while ( have_posts() ) : the_post();
			$output .= '
<li class=&quot;page_item&quot;>[ ' . get_post_meta( $post->ID, 'final_day', true ) . ' ] ';
			$output .= '<a href=&quot;' . get_permalink() .'&quot;>' . get_the_title() .  '</a></li>
';
		endwhile;
		$output .= '</ul>
';
		echo $output;
		wp_reset_query();
	endif;
	?>
<h3>終了したイベント</h3>
	<?php
	$current_date = date_i18n( 'Y/m/d' );
	$output = '';
	$args = array(
	'showposts' => '30',
	'orderby' => 'meta_value',
	'meta_key' => 'final_day',
	'order' =>'DESC',
	'meta_query' => array(
	array(
	'key' => 'final_day',
	'value' => $current_date,
	'compare' => '<',
	'type' => 'DATE'
)
)
);
	$output = '';
	query_posts( $args );
	if ( have_posts() ) :
		$output .= '
<ul classs=&quot;pagelist&quot;>';
		while ( have_posts() ) : the_post();
			$output .= '
<li class=&quot;page_item&quot;>[ ' . get_post_meta( $post->ID, 'final_day', true ) . ' ] ';
			$output .= '<a href=&quot;' . get_permalink() .'&quot;>' . get_the_title() .  '</a></li>
';
		endwhile;
		$output .= '</ul>
';
		echo $output;
		wp_reset_query();
	endif;
	?>


 
@dk45blogさんから頂戴したコードです♪
 
すると、以下のように表示されます。  

今後開催されるイベント

[2012/07/01]イベントのタイトル名
[2012/07/13]イベントのタイトル名

終了したイベント

[2012/06/02]イベントのタイトル名
[2012/06/15]イベントのタイトル名
   
何かと使えそうですよね♪
 
php初心者でもイベントプラグインを使用せずにイベント開催情報が作れちゃいます^^
@dk45blogさんありがとうございました〜!

  • このエントリーをはてなブックマークに追加