eventlist

イベント一覧

 

カスタム投稿タイプ「イベント」の一覧画面。

一覧画面で、イベントの各記事の画像、カスタム分類「地区」を表示させるようにした。
 

画像が無い場合や、カスタム分類が未指定の場合は、注意メッセージを表示。

ソースコード

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);