web関連 WordPress

【WordPress】Advanced custom fieldsのデイトピッカーで表示を分岐する

更新日:

バンドやミュージシャン、音楽活動をする人のホームページに特化したWordPressテーマ「zousanrecords」を販売してます。
前回の投稿からちょくちょくバージョンアップしてます。販売ページは→こちら

PHP初心者の自分がこのWordPressテーマを構築していく上でつまずいたとこ、苦戦したところを備忘録として残しておこうと思います。

今回はAdvanced custom fieldsというプラグインのデイトピッカーを使って表示を分岐する方法

やりたいこと

カスタム投稿タイプで作ったライブ情報一覧ページで

  • 「今日」以降のライブ予定を日程の近い順に並べて表示
  • ライブの日が過ぎた情報については「過去のライブ情報」に移動、表示させる
  • ライブの予定がないときは「現在、ライブの予定はありません。」の文言を表示させる

です。

はじめにやってみたこと

はじめに書いてみたコードが以下↓

投稿を全件取得して、ライブの日程を判定して今日以降の情報を表示させる、と考えたのですが全然ダメでした。
投稿が無いと「現在、ライブの予定はありません。」の文言は表示されたけど、情報を投稿すると何も表示されない。

ここで1ヶ月ほど停滞しました。。

某質問サイトで質問してみた

どうにもならなくて、思い切ってIT系の某質問サイトで質問してみました。すると一日もかからず解決!神がいました。

修正したコードが以下↓

クエリ($argsの箇所)の部分で分岐してしまう方法です。

後で調べたらWordPress Codex 日本語版にも載ってました。
参考:関数リファレンス/WP Query - WordPress Codex 日本語版

ポイントはAdvanced custom fieldsのデイトピッカーの設定で「返り値のフォーマット」を「Ymd」にすること。

'meta_value' => date( "Ymd" ),

の部分とフォーマットを合わせます。

過去のライブ情報

過去のライブ情報一覧は条件分岐を逆にして、並び順も逆(最新のものから順)するだけ。

'order' => 'DESC',
'meta_compare' => '<',

になっています。

サンプルページは→こちら

以上、一番苦戦したところでした。

音楽活動している人のためのWordPressテーマ「zousanrecords」

バンドやミュージシャン、音楽活動をする人のホームページに特化したWordPressテーマ「zousanrecords」を販売してます。

サンプルページは→こちら

-web関連, WordPress
-, , ,

Copyright© ヒダリのヒ , 2019 All Rights Reserved Powered by STINGER.