【XO Event Calendar】シンプルで使いやすいイベントカレンダー

【XO Event Calendar】シンプルで使いやすいイベントカレンダー

日本語なのでわかりやすいです。

プラグインの新規追加から【XO Event Calendar】を検索します。
プラグイン一覧から有効化したら、管理画面のサイドバーにイベントという項目が表示されます。

イベントの投稿編集画面

イベントのカテゴリー一覧画面

イベントの休日設定画面

固定ページなどにカレンダーを表示したい場合は、ショートコードを貼り付けるだけで表示されます。

[xo_event_calendar]

phpの場合

<?php echo do_shortcode('[xo_event_calendar]');

デフォルトだと下記のカレンダーが表示されます

オプションが用意されてあり、追加することでカスタマイズもできます。

<?php echo do_shortcode('[xo_event_calendar holidays="all" previous="1" next="3" exclude_end_events]');

休日を表示し、終了イベントを除外、3ヶ月先の予定まで表示されるようにオプションを追加しました。

カスタマイズ後のカレンダー

パーマリンクを変更

デフォルトの状態では、イベント(投稿)のカスタム投稿タイプは「xo_event」
イベントカテゴリーのカスタムタクソノミーは「xo_event_cat」になってます。
「xo_」の部分を削除するにはwp-config.phpに下記2行を追加してください。

<?php 
define( 'XO_EVENT_CALENDAR_EVENT_POST_TYPE', 'event' );
define( 'XO_EVENT_CALENDAR_EVENT_TAXONOMY', 'event_cat' );

そうすることでURLをxo_eventではなく、eventだったり自分の好きなURLに変更することが出来ます。

イベント一覧画面で表示

一覧ページ表示する際、各イベントの状況をわかりやすく表示したく、
xo_event_calendarに紐付いているカテゴリーとスケジュールを取得してみました。


<php
$terms = get_the_terms($post->ID, 'xo_event_cat'); ?>
<php if ($terms) : ?>
    <php foreach ($terms as $term) : ?>
        <php
        $term_link = get_term_link($term); //タグリンク
        $event_start_date = get_field('event_start_date');
        $event_end_date = get_field('event_end_date');
        ?>
        <li class="topPageSec03__blogItemContentTagItem">
            <a href="<php echo $term_link; ?>" class="topPageSec03__blogItemContentTagItemLink">
                <php echo get_the_term_list($post->ID, 'xo_event_cat', '', ', ', ''); ?>
                <php // イベント開始日を取得
                $start_date = get_post_meta($post->ID, 'event_start_date', true);
                echo '<span> 開催日: ' . esc_html(date_i18n('m/d(D)', strtotime($start_date))) . '</span>';
                ?>
                <php // イベント終了を取得
                $end_date = get_post_meta($post->ID, 'event_end_date', true);
                echo '<span> 終了日: ' . esc_html(date_i18n('m/d(D)', strtotime($end_date))) . '</span>';
                ?>

                <!-- 日付 動的 -->
                <php
                $today = date("Y/m/d"); //今日の日付
                $start = $event_start_date; //開始日
                $end = $event_end_date; //終了日
                if (strtotime($today) < strtotime($start)) {
                    echo "<span>開催予定</span>";
                } else if (strtotime($today) >= strtotime($start) && strtotime($end) >= strtotime($today)) {
                    echo "<span>開催中</span>";
                } else if (strtotime($today) > strtotime($end)) {
                    echo "<span>開催終了</span>";
                }
                ?>
            </a>
        </li>
<php
    endforeach;
endif;
?>

いろんなカレンダー試しましたが、このプラグインは操作がシンプルでとても使いやすかったです。

SNSシェア

WP TECH WordPress技術専門 Tips

コーポレートサイトへ

WP TECH WordPress技術専門 Tips

採用サイトへ