コンテンツフィールドの値をURLの設定に使用できない

以前にカスタムフィールドの値をURLのルールに使用する方法を試しましたが、コンテンツタイプのコンテンツフィールドで同じことをしようとしてうまくいかなかったのでメモ。

2019/2/16 設定方法の補足を追加しました。

サンプルコード

以下のようなコンテンツタイプを作成します。

  • コンテンツタイプ名:イベント
  • 開催日時(日付と時刻)
  • イベント概要(埋め込みテキスト)
  • 会場(テキスト)

次にコンテンツタイプアーカイブを作成します。

  • テンプレート名:イベント詳細
  • コンテンツタイプ:イベント

アーカイブマッピングのパスをカスタムにして、以下のようにします。

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も同じように「カテゴリフィールド」から選択することでできるようですが、カテゴリセットの場合は必須にしなくても使用できるようです。
それ以外のフィールドに関してはおそらくパスでは使えないようです。
 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930