我试图弄清楚如何从表达式引擎动态获取内容。基本上我有6篇文章摘要作为内容。当页面加载时,我得到3个摘要,但我有一个"显示更多"按钮。单击后,我想加载接下来的3个摘要,但我不知道如何执行此操作。
这就是我的标签现在的样子:
{exp:channel:entries channel="blogposts" limit="3"}
<div class='article-box'>
<div class="article-image-box">
<div class="article-image">
</div>
</div>
<article>
<h4>{title}</h4>
<p class='author'>{blog_author}</p>
<p>
{blog_body}
</p>
<div class="ful-art-but-box">
<button class="button green-but">
READ FULL ARTICLE
</button>
</div>
</article>
</div>
{/exp:channel:entries}
答案 0 :(得分:1)
首先,您将在expressengine.stackexchange.com上的专用EE网站上获得更好的答案
为什么不加载所有六个条目,并隐藏最初不想显示的条目?然后你可以用javascript显示它们。这对性能也会更好。
{exp:channel:entries channel="blogposts" limit="6" disable=""}
{if count == 3}
<div class="hidden">
{/if}
<div class='article-box'>
<div class="article-image-box">
<div class="article-image">
</div>
</div>
<article>
<h4>{title}</h4>
<p class='author'>{blog_author}</p>
<p>
{blog_body}
</p>
<div class="ful-art-but-box">
<button class="button green-but">
READ FULL ARTICLE
</button>
</div>
</article>
</div>
{if total_results == "0"}
</div>
{/if}
{/exp:channel:entries}
答案 1 :(得分:1)
如果您希望访问者能够在内容增加时反复“加载更多”,那么Jelle的解决方案是不够的。
为了“未来证明”,我将通过创建一个以JSON格式返回三个一组的条目的EE模板来解决这个问题,我们称之为“more.json”
“加载更多”按钮会向more.json发出AJAX请求。它需要指定一个偏移量(第一次按下按钮时它需要返回结果7 - 9,下次它被击中它需要返回结果10 - 12,依此类推)。
您可以将偏移量作为网址段传递,如下所示:
your_template_group/more.json/6
模板more.json将获取请求segment_3中的值并将其传递给通道条目函数,如下所示:
{exp:channel:entries channel="blogposts" limit="3" disable="" offset="segment_3"}
我会使用jQuery来处理AJAX,附加结果,更新按钮状态等。本网站和其他地方有很多教程解释如何实现这一点。
答案 2 :(得分:0)
我同意@Jelle Dijkstra的说法:“首先,您将在expressengine.stackexchange.com的专用EE网站上获得更好的答案”
那说,为什么不保持简单,只使用jQuery“load”方法?
您可以在此处阅读:http://www.w3schools.com/jquery/jquery_ajax_load.asp 或者在这里:http://api.jquery.com/load/
基本上,只需添加一个包含点击事件的链接/按钮即可。在click事件上,加载一个模板,该模板可以提取您需要的信息。您甚至可以在模板中执行单个条目示例,然后为“start_on”或“limit”提供变量,以使其更加动态,具体取决于用户选择,屏幕大小或您在其他区域中使用。使用load还允许您具有“回调”功能,以便在内容传递之前显示“加载”图标。
对我而言,这是最简单的方法。 ;)