この記事の所要時間: 543

休日にプラグインのコード修正してしまいました。

1月にリリースしたWordPressプラグイン Time goes by に不具合が見つかりました。
大変申し訳ありません。
m(_ _)m

Time goes by
https://wordpress.org/plugins/time-goes-by/

ショートコード [tgb ][/tgb] で囲まれた部分が start_time, end_time, config で指定された時間帯等に表示されるようになるプラグインです。

弊社ブログでテストしていてわかったのですが、もしかしたらご迷惑おかけしてないといいのだけど・・・。

タイムゾーンを取得し忘れている箇所が1箇所ありましてそこを通る処理の場合に1つ目のショートコードが9時間(またはサーバー時間と日本時間のズレ分)遅れで表示されるというものです。

こちら修正しアップデートがかかる状態となっております。

ゴールデンウィークに向けてこのプラグインの使い方、便利な方法を広めるページを作成予定です。

WordPressプラグイン Time goes by って

このプラグインは、投稿ページ、固定ページ内に時間設定してコンテンツを表示させるというものです。

昨年末〜今年はじめのお正月休み用に作ったのですが、もちろん長期休暇〜そう、今度のゴールデンウィークに最適です!!

使い方は下記の通り

ショートコード [tgb ][/tgb] で囲まれた部分が start_time, end_time, config で指定された時間帯等に表示されるようになるプラグインです。
start_time だけの指定
end_time だけの指定も可能です。

[tgb start_time=”20160101″][/tgb] で囲まれた部分は 2016年1月1日を迎えると表示されます。
[tgb end_time=”20161231″][/tgb] で囲まれた部分は 2016年12月31日になるまで表示されます。
2016年12月31日いっぱい表示したい場合は [tgb end_time=”20161231235959″][/tgb] で囲むか
[tgb end_time=”20170101″][/tgb] で囲むと2017年1月1日になった瞬間表示されなくなります。

より詳細で繰り返しも可能な config パラメータの設定ができるようにしました。
設定は config=”day:1|2|3|4|5,hour:7|8|9|10|11″ のように設定します。
上記の設定は下記のように理解されます。

「毎月1〜5日 の 7〜11時 にだけ表示される」

これに start_time, end_time も絡めて詳細に繰り返しとなる部分を設定することが可能です。
そして複数の設定を一度に行うことができます。パラメータをカンマ区切りで指定できます。
** 複数の設定は記述の順番に実行されます。ただし、任意のパラメータについては最後に実行されます。
** 規定のパラメータ、任意のパラメータ以外のパラメータは無視されます。

config パラメータは下記の設定が出来ます。
[1] hour: 24時表記で設定します。7〜10時という場合は hour:7|8|9(10時台に入ったら表示されない) というように | (vertical line)で区切るようにします。
[2] day: 毎月○日の設定をします。 day:7|8|9|10 とすると 7〜10日というようになります。
[3] week: 毎週○曜日の設定をします。 week:sun|mon|tue とすると日〜火曜日という感じです。一応日本語での設定も受け付けるはずです。 week:火|木|土 など。
[4] month: ○月の設定をします。 month:6|7|8 とすると6〜8月という感じです。季節ごとの表示切り替えができる感じです。
[5] 任意のパラメータ これは
  
  add_filter(‘time_goes_by_judgement’, ‘〜任意のメソッド名〜’, 10, 3);
  
  という感じにfunctions.phpに記述し
  任意のメソッド名にて TRUE か FALSE を返却すればそのように表示されます。
  そもそも他の判定に依存しないように $flg を引数に入れていますので、そこまでの判定を覆すことも可能です。
  $config には任意のパラメータ以外の上記パラメータも入ってきます。 $content にはショートコードで囲まれた部分が入ってますので
  様々な利用方法・判定方法が考えられます。
  apply_filters( ‘time_goes_by_judgement’, $flg, $configs, $content );

  祝日に表示する などは現在のプラグイン自体にはない機能ですが、これを使って実装すると良いでしょう。

例:
[tgb config=”month:1|2|3,day:5|15|25,hour:13|14|15″]1〜3月の 5の付く日は タイムサービスを行っています!!! ただいま13時〜16時までサービスタイム実施中!![/tgb]

・timezone=”Asia/Tokyo” のようにパラメータ指定でタイムゾーンの指定ができます。

このデフォルト値は内部設定のタイムゾーンとなっています。

このデフォルト値は管理画面から変更することが可能です。

その他、この中で利用出来るように[disp_content][disp_title]ショートコードも用意しました。
[disp_content post_id=”xxx”] とすると、投稿IDがxxxのコンテンツを表示します。
[disp_title post_id=”xxx”] とすると、投稿IDのタイトルを表示します。

例:
[tgb start_time=”20160101″ end_time=”20160201″]<h2>[disp_title post_id=”1234″]</h2>
[disp_content post_id=”1234″][/tgb]

2016年1月1日から2016年2月1日になるまで(1月31日の間まで)投稿ID:1234のタイトルがh2タグでその下に投稿ID:1234のコンテンツが表示されます。