the events calendar WP plugin

バージョンアップしたらカスタマイズが吹っ飛んだ

The Events CalendarプラグインのReカスタマイズのお話です。
過去記事はこちら

そろそろバージョンアップしてみるかぁと軽い気持ちでプラグインを更新したら、当然カスタマイズが吹っ飛びました。
2014/4/14現在のThe Events Calendar plugin最新は3.5.1

まあバックアップあるからそれはいいんですが、バックアップからカスタマイズ部分を戻しても
Complicatedにバグるばかりで全然だめ。
PHPの中身がだいぶ変わったみたいです。
なので戻らない一部カスタマイズは調べ直しました。

でもCSSはそんなには変わっていないので、カレンダーの幅や色変更についてはカスタマイズ過去記事に書いたものでOKでした。


Reカスタマイズ

やり直した部分と新たにカスタマイズした部分はこちら

  1. カレンダーリストのデフォルトタイトルが欧米風「4月2014イベント」になっているのをYYYY年MM月に並べ替える
  2. 検索ボタンを日本語にする
  3. イベント詳細ページで住所が欧米風になっているのを日本形式にする
  4. イベントの詳細ページで、日付フォーマットで「日」がないのを付与する

2015/10/28追記
1番についてはこちらの記事(バージョン3.12.3に対応)を見てください!


カレンダーリストのタイトル月-年を年-月に並べ替える

タイトル
編集ファイル
hoge/plugins/the-events-calendar/public/template-tags/loop.php

function tribe_get_events_title( $depth = true )  {
		global $wp_query;
・・・略・・・

		if( tribe_is_month() ){
			$title = sprintf( __( '%s', 'tribe-events-calendar' ),
				date_i18n( 'Y年 F', strtotime( tribe_get_month_view_date() ) )
			);
		}

ハイライトのところ、”Events for F Y”になっているのを上記のように変更。
日本語をソースに入れるので、もちろんUTF-8で保存、上書きします。

このloop.phpファイルにはEvents forという文言が複数直書きされてますが、それも中途半端な見栄えなので、全部消しておいてもいいかも。

2015/10/28追記
この変更するファイルがない方はこちらの記事(バージョン3.12.3に対応)を見てください!


検索ボタンを日本語にする

検索ボタン
編集ファイル
hoge/plugins/the-events-calendar/views/modules/bar.php

		<div id="tribe-bar-collapse-toggle" <?php if ( count( $views ) == 1 ) { ?>
 class="tribe-bar-collapse-toggle-full-width"<?php } ?>>
			<?php _e( '検索', 'tribe-events-calendar' ) ?>
<span class="tribe-bar-toggle-arrow"></span>
		</div>

略

<div class="tribe-bar-submit">
					<input class="tribe-events-button tribe-no-param"
 type="submit" name="submit-bar" value="<?php _e( '検索', 'tribe-events-calendar' ) ?>" />
				</div><!-- .tribe-bar-submit -->

ハイライトのところ、Searchから検索に変更するだけです。
もちろんUTF-8で保存、上書きします。

同じファイルの下記(ライン41,42)も、view as という英語を日本語に変更しました。

<h3 class="tribe-events-visuallyhidden"><?php _e( 'ナビ', 'tribe-events-calendar' ) ?>
</h3>
				<label><?php _e( '表示モード', 'tribe-events-calendar' ); ?></label>


イベント詳細ページで住所が欧米風になっているのを日本形式にする

いやー結構さまよった・・・。
住所
編集ファイル
hoge/plugins/the-events-calendar/views/modules/address.php

編集箇所なんですが、ライン30からのPHPタグの中身、これが要するに欧米風の住所並びになっていたわけです。
ので、ここを郵便番号ZIPから始まる日本形式の住所並びにするのに、各項目の呼び出し関数ごと並べ替えるだけです。
ちなみに郵便番号呼び出しの関数のところだけ、日本の郵便番号マークを追記しました。

<?php
// Get our country
if( tribe_get_country( $postId ) ) {
	if(count($address_out))
	$address_out []= ' <span class="country-name">'. tribe_get_country( $postId ) .
'</span>';
}

// Get our postal code
if( tribe_get_zip( $postId ) ) {
	$address_out []= ' <span class="postal-code">〒'. tribe_get_zip( $postId ) .
'</span>';
}

// Get our full region
$our_province = tribe_get_event_meta( $postId, '_VenueStateProvince', true );
$our_states = TribeEventsViewHelpers::loadStates();
$our_full_region = isset( $our_states[$our_province] ) ? $our_states[$our_province] :
 $our_province;

// Get our region
if( tribe_get_region( $postId ) ) {
	if(count($address_out))
		$address_out []= ' <abbr class="region tribe-events-abbr" title="'.
 $our_full_region .'">'. tribe_get_region( $postId ) .'</abbr>';
}
// Get our city
if( tribe_get_city( $postId ) ) {
	if( tribe_get_address( $postId ) )
		$address_out []= '<span class="delimiter">,</span> ';
	$address_out []= ' <span class="locality">'. tribe_get_city( $postId ) .
'</span>';
	$address_out []= '<span class="delimiter">,</span> ';
}
// Get our street address
if( tribe_get_address( $postId ) ) {					
	$address_out []= '<span class="street-address">'. tribe_get_address( $postId ) 
.'</span>';
	if( ! tribe_is_venue() )
		$address_out []= '<span class="delimiter">,</span>';}


イベントの詳細ページで、日付フォーマットで「日」がないのを付与する

日付フォーマット
編集ファイル
hoge/plugins/the-events-calendar/views/modules/meta/details.php

”April”など月が”4月”とかに変換されるので、結局何月何日の「日」だけがないような表記になってしまっています。
ので、「日」という文字列をabbrタグで表示するときに付与します。
ここにいれると、カレンダーの月全体のページのとき、各イベントにマウスオーバーしたときに、ポップアップで表示されるイベント詳細も、ちゃんと変わります。

		<?php
		// Single day events
		else :
			?>

			<dt> <?php _e( '日付:', 'tribe-events-calendar' ) ?> </dt>
			<dd> <abbr class="tribe-events-abbr updated published dtstart" title="<?php esc_attr_e( $start_ts ) ?>"> <?php esc_html_e( $start_date ) ?>日 </abbr> </dd>

			<dt> <?php _e( '時間:', 'tribe-events-calendar' ) ?> </dt>
			<dd> <abbr class="tribe-events-abbr updated published dtstart" title="<?php esc_attr_e( $end_ts ) ?>">
					<?php if ( $start_time == $end_time ) esc_html_e( $start_time ); else esc_html_e( $start_time . $time_range_separator . $end_time ); ?>
				</abbr> </dd>

カレンダーの幅や色の変更は過去記事をご参考に!

こちら[WordPress]The Events Calendarプラグインでスケジュールページを見やすくしてみたです!