XO Event Calendar イベント投稿ページのカスタマイズ

XO Event Calendar プラグインのイベント投稿ページをカスタマイズする方法を紹介します。
イベント投稿ページは、デフォルトではテーマの投稿ページ(single.php など)のコンテンツの上部に、下記のようなイベント情報が追加される形で表示されます。

開催日: 2019年3月1日 - 4月30日
カテゴリー: 無料教室

翻訳テキスト

「開催日」「カテゴリー」の表記のみを変更する場合は、翻訳テキストなので gettext フィルターフックなどで変更することができます。

下記のコードをテーマの functions.php に追記します。

function my_gettext_calendar( $translated, $text, $domain ) {
	if ( $domain === 'xo-event-calendar' ) {
		$texts = array (
			'Event date:' => '開催日:',
			'Categories:' => 'カテゴリー:',
		);
		if ( isset( $texts[$text] ) ) {
			$translated = $texts[$text];
		}
	}
	return $translated;
}

add_filter( 'gettext', 'my_gettext_calendar', 10, 3 );

なお、gettext フィルターは翻訳テキストで常に実行されるため、パフォーマンス上の問題を起こす場合があります。上記コードではあまり気にするほどでもないかと思いますが、次のセクションで説明しているテンプレートファイルを編集する方法をおすすめします。

テンプレートファイル

ここでは、テンプレートファイルを編集する方法を説明します。

テーマの single.php または single.php を複製して作成した single-xo_event.php ファイルの、ループ内に下記のコード追記します。

<?php if ( is_singular( 'xo_event' ) && $xo_event_calendar ) : ?>
	<div class="xo-event-meta-details">
	<div class="xo-event-meta">
	<span class="xo-event-date">開催日: <?php echo $xo_event_calendar->get_event_date( $post->ID ) ?></span>
	<span class="xo-event-category">カテゴリー: <?php echo get_the_term_list( $post->ID, 'xo_event_cat', '', ', ', '' ); ?></span>
	</div>
	</div>
<?php endif; ?>

※ single-xo_event.php テンプレートファイルの場合は、is_singular() の条件は不要です。

最後に

イベント情報は、テンプレートファイルを使用すると簡単にカスタマイズすることができます。ぜひお試しください。

コメント

  • yomin より:

    こんにちは。
    現在制作中のサイトにプラグインを使わせていただいています。
    とても分かりやすくて重宝してます。
    教えていただきたいのですが、イベントを投稿したページの内容が表示されなくて困っています。カレンダーやアーカイブなどには反映されているのですが、カレンダーに表示されているイベント名をクリックすると入力したはずのイベント内容や画像は表示されずに真っ白なんです。
    マルチサイトではないのですが、念のためパーマリンクは開いたのですが、表示されません。
    よろしくお願いします。

  • やじろべえ より:

    お世話になります。

    single-xo_event.php テンプレートファイルには、

    archive-xo_event.phpテンプレートファイルには、

    で、テンプレートを呼び出しています。

    カテゴリーのテンプレートファイルを呼び出すにはどうすればよいのでしょうか?よろしくお願いいたします。

    • 石鷹 より:

      こんにちは、コメントありがとうございます。
      イベントカテゴリーは、カスタムタクソノミーで名前は「xo_event_cat」(デフォルト)です。
      よって、イベントカテゴリーアーカイブインデックスページのテンプレートファイル名は「taxonomy-xo_event_cat.php」となります。

コメントを残す

メールアドレスが公開されることはありません。

日本語でコメントを入力してください。