情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
イベントのランダムな開催日をAdvanced Custom Fields Pro のリピーターで設定して、カレンダーで表示するためには、カレンダーの日付と照合するためのデータが必要なので、これはリピーターの日付を別のフィールドに関数で保存して、テーマ上で配列に入れる、ということをしているのだが、アーカイブで全てのイベントの開催日をカレンダーで表示しようとすると、全てのイベントの開催日データが必要になる。
フィールド名と投稿タイプを指定してすべてのフィールド値を取得するためのテーマ関数
function get_meta_values( $meta_key = '', $post_type = 'post', $post_status = 'publish' ) { global $wpdb; if( empty( $meta_key ) ) return; $meta_values = $wpdb->get_col( $wpdb->prepare( " SELECT pm.meta_value FROM {$wpdb->postmeta} pm LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id WHERE pm.meta_key = %s AND p.post_type = %s AND p.post_status = %s ", $meta_key, $post_type, $post_status ) ); return $meta_values; }
テーマ側でデータを取得・配列に入れる・重複を削除・データが日付のため昇順にソート
ソートする理由は、「今日」を超える開催日を取得するため
$data1 = get_meta_values( 'data', 'posttype' ); $data2 = implode(',',$data1); $data3 = explode (',', $data2); $data = array_unique($data3); usort($data, function ($a, $b) { return strtotime($a) - strtotime($b); });
その他のAdvanced Custom Fields に関する記事一覧
- 予約受付からリマインドメールまで
- タイムゾーンについて
- メタ値をすべて取得して配列に入れる
- メールフォームでの予約受付の作り方
- メールフォーム日時予約受付のサンプル
- WP REST API とACF リピーター
- カテゴリーの閲覧数
- ACF デートピッカーのフォーマット設定
- ACF リピーターをカレンダーに出力(予約カレンダーの実装)
- ACF 入れ子リピーターの内側だけループ
- WP REST API 独自エンドポイントとACF
- ACF 値の登録や保存
- REST API でACFの表示など
- Advanced Custom Fields の表示、まとめ
- PHP8以降で出るWarning
- イベントの開催期間の表示
- イベント終了時にタイトルに追加する
- アクセスランキング
- ワードプレスからメール送信
- CF7で予約した人にリマインドメールを送る