以前にカスタムフィールドの値をURLのルールに使用する方法を試しましたが、コンテンツタイプのコンテンツフィールドで同じことをしようとしてうまくいかなかったのでメモ。
サンプルコード
以下のようなコンテンツタイプを作成します。
- コンテンツタイプ名:イベント
- 開催日時(日付と時刻)
- イベント概要(埋め込みテキスト)
- 会場(テキスト)
次にコンテンツタイプアーカイブを作成します。
- テンプレート名:イベント詳細
- コンテンツタイプ:イベント
アーカイブマッピングのパスをカスタムにして、以下のようにします。
event/%y/%m/%d.html
投稿日を使って、「event/年/月/日.html」の形でページが生成される想定です。
この場合はページが生成されました。
アーカイブマッピングのパスを変更して、実際にコンテンツフィールドの値を使ってみます。
以下のコードを1行にして設定してみます。
event/ <mt:ContentField content_field="開催日時"> <mt:ContentFieldValue format="%Y">/ <mt:ContentFieldValue format="%m">/ <mt:ContentFieldValue format="%d"> <mt:Else> %y/%m/%d </mt:ContentField> .html
この場合はページが生成されませんでした。
試しに最初の例をMTタグを使った形に変更してみます。
event/<$mt:ArchiveDate format="%Y"$>/<$mt:ArchiveDate format="%m"$>/<$mt:ArchiveDate format="%d"$>.html
この場合は最初と同じく、投稿日の値でページが生成されました。
コンテンツタイプテンプレートのパスでMTタグが使えないのかもとも思いましたが、おそらくコンテンツフィールドをパスで使えないようです。
2019/2/16補足
日付と時刻の場合、コンテンツタイプ の設定で必須にするとURLの設定に使用できるようです。
アーカイブマッピングの設定の下部にある「日付と時刻フィールド」で使用する日付を選択するのですが、コンテンツタイプを必須にしていないとデフォルトの「公開日」しか選択できません。
コンテンツタイプを必須に変更すると、コンテンツタイプで用意した「開催日時」も選択できるようになりました。
この状態でパスをカスタムにして、以下のように設定します。
event/%y/%m/%d.html
保存と再構築を行うと、開催日時を使ってページを生成することができました。
カテゴリセットを使ったURLも同じように「カテゴリフィールド」から選択することでできるようですが、カテゴリセットの場合は必須にしなくても使用できるようです。
それ以外のフィールドに関してはおそらくパスでは使えないようです。
コメントが承認されるまで時間がかかります。