アナダン周回記録をつけるためにスケジューラープラグイン Event Organiser をいじったので、途中経過とその備忘録です。
php やら WordPress 初心者なので、ひーこら言いながら UI 作成と必要情報の抽出がなんとか終わったところです。
ダンジョンページはレイアウト調整中ですが、こんな感じで基本情報と攻略回数や獲得アイテムの集計させる予定です。
イベント投稿画面はこんな感じ。
やりたいことイメージ
投稿
ダンジョンクリアのたびに投稿:
- イベントのカテゴリーから「アナダン」を選択
- 行き先のダンジョンを選択
- (ダンジョンに応じた入力項目表示)
- 適宜入力して投稿
閲覧
- イベントページ
投稿内容表示するだけ(あまり意味がないので閲覧不要かも) - ダンジョンページ
ダンジョン基本情報と攻略回数や獲得アイテムの集計を表示 - ショートコード
攻略回数や獲得アイテムの集計を表示
ダンジョン指定、期間指定などできるように
※ 作り方要調査
構成概要
Event Organiser のイベントをベースに、タクソノミーやフィールドを追加して実現します。
構成はこんな感じ。
- カスタム投稿「イベント」
- カスタムタクソノミー「イベントカテゴリー」に「アナダン」追加
- カスタムタクソノミー「ダンジョン」
- カスタムフィールドグループ「ダンジョン情報」
ダンジョンの基本情報を入力
- カスタムフィールドグループ「ダンジョン情報」
- カスタムフィールドグループ「現代ガルレア大陸」
途中ルートやボスを入力 - カスタムフィールドグループ「幻璃境」
最終到達境やボーナスフロアを入力 - カスタムフィールドグループ「報酬」
夢詠みの書やレアクリア報酬を入力
赤文字は、タクソノミーやカスタムフィールドそのものから新規作成したもの
使用プラグイン
- Event Organiser(説明割愛)
- Custom Post Type UI
- WP Taxonomy Import
- Advanced Custom Fields(説明割愛)
Radio Buttons for Taxonomies
Custom Post Type UI
カスタム投稿やカスタムタクソノミーを簡単に作れてしまうプラグインです。
インポート、エクスポートも簡単。
表示する投稿タイプを選択できるのですが、さらに条件を加えて「このカテゴリー選択時のみ」とかできるといいのですが、条件分岐はできなさそうです。
カテゴリー方式 or タグ方式
ダンジョンタクソノミーを作って、ダンジョンも登録して、いざ投稿!となったときに、ダンジョン一覧が表示されずこんな(↓)感じの記入欄になってしまいました。
いちいちダンジョン名入力するの面倒くさいので、カテゴリーみたいな選択式にしたくて調べたところ、「階層」項目を「true」にすると簡単にカテゴリー同様の入力方式(↓)にできるようです。
パーマリンク
今回ベースにした Event Organiser のパーマリンクが、「<ドメイン名>/events/~」となっているので統一させるために、「カスタムリライトスラッグ」を「events/<タクソノミー名>」に設定しました。
アイキャッチ url 取得(Cocoonテーマ使用)
Cocoon テーマをお使いの場合、カスタムタクソノミーのアイキャッチ画像の url を取得するには、get_the_tag_eye_catch_url() が使えます。
$eye_catch_url = get_the_tag_eye_catch_url( $term_id );
get_the_post_thumbnail() とか thumbnail 系の WordPress api がことごとく false になるので「???」状態でした。
Cocoon が用意してくれたアイキャッチフィールドを、それと知らずに使っていたので専用の api が必要だったのかな…
WP Taxonomy Import
タクソノミーのタームをテキストベースでインポートできるプラグインです。
今回はダンジョンタクソノミーだったので、「月影の森」とかを1個1個作る手間が省けました。
階層構造を作ったり、スラッグもつけられますが、フォーマットが単純明快な分、フィールド値などはインポートできないのでそこはちょっと不便です。
Radio Buttons for Taxonomies
選んだタクソノミーを複数選択できるチェックボックスから、単一選択しかできないラジオボタンに変更してくれるプラグインです。
イベントカテゴリーも、ダンジョンも単一選択が理想だったので導入してみましたが、ラジオボタンに変更するとカスタムフィールド表示条件を満たせないのか、肝心のカスタムフィールドが表示できなくなったため不採用となりました。
プログラム 楽しいけど
ゲームが 進まないな これ……。
コメント