我知道这听起来很疯狂,但我需要在表达式引擎通道模块的循环之外显示一些帖子信息。这可能吗?
4 回答
您可以使用 EE 的 SQL 查询模板标签(如果您知道,或者可以访问数据库表名并且知道要在数据库中查找什么):
http://expressionengine.com/user_guide/modules/query/index.html
基本上,你只会输出你需要的东西——它不必属于一个频道,或者任何特定的东西。最重要的是您必须了解 SQL 语法的基础知识,但如果您对它有一点工作知识,您可以用它做很多额外的事情。
如果您不喜欢 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 文档中阅读更多相关信息。{exp:channel:entries}
在其他模板中嵌入模板是多次访问循环的好方法。
有一个名为 MX Jumper 的附加组件,它允许您从条目循环中“设置”一个变量,然后在模板的其他位置“获取”它(在 HTML 循环之前或之后并不重要,因为它稍后会解析)。
或者,现在风靡一时的方法是使用附加存储来存储您需要明确使用的任何和所有元素作为您设置然后获取的存储变量 - 类似于上面,除了一旦设置它们,获取它们必须在稍后的解析阶段发生。这种方法的美妙之处在于 stash 将存储“设置”变量以供在用户或站点级别重用,并且您可以确定到期期限是什么——这会带来更好的性能。当您使用“模板部分”思维方式广泛应用这一点时,您可以使用 stash 存储所有内容,然后将它们调用到少量包装模板中。这使得可以使用 stash 设置,例如,您的条目标题,
我还建议查看Stash。