おかしなことに聞こえるかもしれませんが、エクスプレッション エンジン チャネル モジュールのループの外側に投稿情報を表示する必要があります。これは可能ですか?
4 に答える
EEのSQLクエリテンプレートタグを使用できます(データベーステーブル名を知っているか、データベーステーブル名にアクセスでき、データベースで何を探すべきかを知っている場合)。
http://expressionengine.com/user_guide/modules/query/index.html
基本的には、必要なものだけを出力します。チャネルや特定のものに属している必要はありません。1つのキッカーは、SQL構文の基本を知っている必要があるということですが、SQL構文についての実用的な知識が少しあれば、それを使ってさらに多くのことを行うことができます。
Stashも参照することをお勧めします。
MX Jumper というアドオンがあり、エントリ ループ内から変数を「設定」してから、テンプレートの別の場所で「取得」できます (後で解析されるため、HTML ループの前後は関係ありません)。
または、現在大流行しているアプローチは、アドオンの Stash を使用して、明確に使用する必要があるすべての要素を、設定してから取得する stash 変数として保存することです。それらを取得するには、後の解析段階で行う必要があります。このアプローチの優れた点は、stash がユーザーまたはサイト レベルで再利用できるように「設定された」変数を格納し、有効期限を決定できることです。これにより、パフォーマンスが向上します。「テンプレート部分」の考え方を使用してこれを広く適用すると、すべてを stash に格納してから、それらを少数のラッパー テンプレートに呼び出すことができます。これにより、stash を使用して、たとえば、エントリのタイトル、
SQL に興味がない場合は、作業中のテンプレート内にテンプレートを埋め込むだけで済みます。と呼ばれるテンプレート グループ内のindexおよびテンプレートを編集していると仮定した簡単な例を次に示します。meta'news'
indexテンプレートの内容:
{exp:channel:entries channel="news"}
<div class="entry">
<h1>{title}</h1>
<div class="content">{body}</div>
{embed="news/meta" this_entry_id="{entry_id}"}
</div>
{/exp:channel:entries}
metaテンプレートの内容:
{exp:channel:entries channel="news" dynamic="no" limit="1" entry_id="{embed:this_entry_id}"}
<div class="meta">
<p>{entry_date}</p>
<p>{author}</p>
</div>
{/exp:channel:entries}
ご覧のとおり、indexテンプレートはテンプレートを埋め込んでいmetaます。テンプレートにパラメーターを渡して、meta情報を出力するエントリ ID を認識していることに注意してください。EE のテンプレート埋め込み機能に慣れていない場合は、EE docsで詳細を読むことができます。テンプレートを他のテンプレートに埋め込むことは、{exp:channel:entries}ループに複数回アクセスするための優れた方法です。