イベント一覧
カスタム投稿タイプ「イベント」の一覧画面。
一覧画面で、イベントの各記事の画像、カスタム分類「地区」を表示させるようにした。
画像が無い場合や、カスタム分類が未指定の場合は、注意メッセージを表示。
ソースコード
function show_event_area( $defaults ) {
unset($defaults['title']);
$defaults['author'] = '開催支部';
$defaults['eventdate'] = '開催日';
$defaults['title'] = 'イベント名';
$defaults['detail'] = 'イベント内容';
$defaults['imgfile'] = '画像';
$defaults['areas'] = '地区';
return $defaults;
}
add_filter('manage_events_posts_columns', 'show_event_area', 15, 1);
//
function show_event_area_id($column_name, $id) {
if( $column_name == 'eventdate' ) {
$event_date = get_post_meta($id, 'eventdate', TRUE);
if ($event_date) {
echo_custom_eventdate($event_date);
echo_eventdate_wday($event_date);
} else {
echo '<span class="error">開催日が未設定です</span>';
}
} else if( $column_name == 'detail' ) {
echo get_content_substr(60,get_the_content_feed());
} else if( $column_name == 'imgfile' ) {
$images = "";
$images = get_children( array( 'post_parent' => $id, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC', 'numberposts' => 999 ) );
if ( $images ) {
$image = array_shift( $images );
echo wp_get_attachment_image( $image->ID, array(80,80) );
} else {
echo '<span class="error">画像無し</span>';
}
} else if( $column_name == 'areas' ) {
if (get_the_terms($id, 'areas')) {
echo get_the_term_list($id, 'areas');
} else {
echo '<span class="error">地区が未設定です</span>';
}
}
}
add_action('manage_posts_custom_column', 'show_event_area_id', 15, 2);

