イベントの日時と状態

イベントの投稿には、開催開始・開催終了・申込締切の3つの日時を入れられます。状態の判定、近日開催の一覧、フローティングバナー、フォームの締切は、すべてこの3つから決まります。

アクセス方法
設定で選んだ投稿タイプの編集画面。サイドバーの「日程(自動状態判定用)」。

1. 3つの日時

日時使い道
開催開始日時近日開催か開催中かの判定。フローティングバナーと近日開催の一覧に出すかどうか。
開催終了日時過ぎたら終了。
申込締切日時過ぎたら申込締切後。「対象イベント」にこのイベントを選び、回答期間の終了を空にした申込フォームは、ここで締め切ります(未入力なら開催開始)。アンケートページで受けるアンケートは、ここでは締め切りません。
イベントの編集画面のサイドバー。日程の3つの日時と申込フォーム
日程(自動状態判定用)と申込フォーム

日時はサイトのタイムゾーン(「設定」→「一般」)で判断します。入力した時刻のとおりに切り替わります。

2. 状態のクラス

イベントのページの本文(body)と、一覧(クエリループなど)の各投稿に、状態を表すクラスが付きます。

クラス付くとき
tber-status-upcoming開催開始がまだ先で、申込締切を過ぎていない。
tber-status-active開催開始を過ぎ、開催終了の前(終了が未入力なら開始後ずっと)。
tber-status-closed申込締切を過ぎ、開催開始の前。
tber-status-ended開催終了を過ぎた。
tber-deadline-passed申込締切を過ぎた。上の状態とは別に付きます(開催中でも付きます)。

日時が1つも入っていない投稿と、対象外の投稿タイプには付きません。管理画面の一覧にも付きません。

バッジやボタンの見た目は、テーマ側の CSS で決めます。例えば .tber-status-ended .event-badge::before { content: "終了しました"; } のように、クラスの中にある要素へ指定します。

3. 近日開催の一覧

クエリループブロックの「追加CSSクラス」に is-tber-upcoming-only を入れると、そのループは「開催開始がまだ先」の投稿だけを、開催が近い順に並べます。設定で選んだ投稿タイプすべてが対象になります。

「テンプレートからクエリーを継承」をオフにしたループで使います。同じページのほかのクエリループには影響しません。

4. 日時を表示する

段落ブロックに日時を差し込めます(ブロックバインディング)。コードエディターで、段落に次の指定を書きます。

<!-- wp:paragraph {"metadata":{"bindings":{"content":{"source":"trustbrain-event-reception/datetime","args":{"field":"start","format":"Y年n月j日 H:i","prefix":"開催:","suffix":"〜"}}}}} -->

引数内容
fieldstart(開催開始)/end(開催終了)/deadline(申込締切)。省略すると開催開始。
format日付の書式(PHP の date 形式)。省略すると「Y年n月j日(D) H:i」。
prefix・suffix日時の前後に付ける文字。

日時が入っていないときは、何も表示しません。

設定の「フローティングバナー」を有効にすると、選んだイベントを、開催が近い順に全ページの右下に表示します。出すイベントは、イベントの編集画面の「日程(自動状態判定用)」にある「フローティングバナーに表示する」にチェックして選びます。

近日開催のイベント3件が並ぶフローティングバナー
フローティングバナー
  • 出すのは、「フローティングバナーに表示する」にチェックした投稿のうち、公開済みでパスワードの無い投稿です。開催が近い順に、設定の件数まで並べます。
  • いつまで出すかは、設定の「バナー:出す期間」で選びます。「開催前まで」なら開催開始日時まで、「募集中だけ(申込締切まで)」なら申込締切日時まで出します(開催中でも締切前なら出ます)。申込締切の無い投稿は、どちらでも開催開始まで出します。
  • いま見ているイベントのページでは、そのイベント自身は出しません。
  • × で閉じると、ブラウザのタブを閉じるまで出ません。
  • 狭い画面では見出しだけに畳んで表示し、見出しを押すと開きます。

チェックはバナーだけに使います。近日開催の一覧と状態のクラスには関係しません。見出しの文字と件数の有無は、設定の「バナー:見出し」「バナー:見出しに件数を出す」で変えられます。各カードの上のラベルは、設定の「バナー:投稿タイプごとのラベル」で変えられます。