リファレンスタグ
リファレンスタグを利用して、サイト内の様々なエレメントへの参照を作成できます。テーブルフィールド内のテキストセルを含む、あらゆるテキストフィールドで使用できます。
リファレンスタグの構文は、次のようになります。
{<Type>:<Identifier>:<Property>}
ご覧の通り、それらは3つのセグメントで構成されています。
<Type>
– 参照を作成するエレメントのタイプ。これは完全修飾のエレメントクラス名(例:craft\elements\Entry
)、または、エレメントタイプの「リファレンスハンドル」です。コアのエレメントタイプは、次のリファレンスハンドルを持っています。
entry
asset
tag
user
globalset
<Identifier>
– エレメントの ID、または、エレメントタイプによってサポートされているカスタム識別子。エントリは次のカスタム識別子をサポートしています。
entry-slug
sectionHandle/entry-slug
@<Site>
構文を利用して、エレメントが読み込まれるべきサイト ID、UUID、または、ハンドルを識別子に含めることもできます。<Property>
(オプション) – リファレンスタグが返すべきエレメントのプロパティ。省略した場合、エレメントの URL が返されます。利用可能なプロパティのリストは、エレメントタイプのクラスリファレンスを参照してください。
- craft\elements\Entry (opens new window)
- craft\elements\Asset (opens new window)
- craft\elements\Tag (opens new window)
- craft\elements\User (opens new window)
- craft\elements\GlobalSet (opens new window)
カスタムフィールドのハンドルもサポートされています。フィールドタイプは文字列として表すことができる値を持っています。
# 実例
有効なリファレンスタグは、次の通りです。
{asset:123:filename}
– ID が123
のアセットのファイル名を(craft\elements\Asset::getFilename() (opens new window) 経由で)返します。{entry:about-us:intro}
– スラグがabout-us
のエントリのカスタムフィールドintro
の値を返します。{entry:about-us@en:intro}
– スラグがabout-us
で、ハンドルがen
のサイトから読み込まれた、エントリのカスタムフィールドintro
の値を返します。{entry:blog/whats-on-tap}
– スラグがwhats-on-tap
のblog
セクションのエントリの URL を返します。{craft\commerce\Variant:123:price}
– ID が123
の Commerce Variant オブジェクトの price を返します。{globalset:aGlobalSet:uid}
– ハンドルがaGlobalSet
のグローバル設定の UID を返します。
# リファレンスタグの解析
parseRefs フィルタを利用して、テンプレート内のリファレンスタグの文字列を解析できます。
{{ entry.body|parseRefs|raw }}