我遇到了一个问题,在url中的第三个"段"将导致ALL exp:channel:entries停止返回结果。
url示例:
工作正常: siteurl.com/index.php/one/two
不工作: siteurl.com/index.php/one/two/three
示例条目Pull:
{exp:channel:entries channel="my_channel" category="18" sort="asc" search:show_toggle="=SHOW" orderby="sort_order"}
这是我不知道的某种注射吗?我已经搜索了文档,从我可以告诉我的一个类别的规格应该覆盖url中的任何内容。我也许搞砸了,但我总能做点什么吧。我可以在通道模块中修改什么?
在Channel Entries标签中不使用动态标签参数,ExpressionEngine 期望 URL段变量包含条目ID或URL标题条目。
由于第三个URL段/index.php/one/two/three
不是数字条目ID或URL标题,您的通道条目查询不包含任何信息。
通过设置
dynamic="no"
,您将确保列表不受URL中传递的任何内容的影响。
既然你已经写了一个非常具体的通道条目查询,一定要添加dynamic="no"
到你的{exp:channel:entries}
标记循环有ExpressionEngine 忽略URL段,而不是使用你提供的参数:
{exp:channel:entries channel="my_channel" dynamic="no" ...}
...
{/exp:channel:entries}
此外,通过在代码中添加一个简单的条件变量,当没有返回结果时,您将能够看到一条消息:
{exp:channel:entries channel="my_channel" ... }
{if no_results}Sorry, No Results{/if}
...
{/exp:channel:entries}
了解基本的ExpressionEngine的URL概念和URL段对于理解和排除此类问题非常重要。
ExpressionEngine查看/index.php/后面的段,如下所示:
- 假定第一个段为模板组
- 下一个段假定为该模板组中的模板的名称
- 第三段被假定为条目的url_title,或者,如果段是数字,条目的entry_id
因此,在您的情况下,EE希望从一个模板组加载两个模板,然后显示my_channel通道中的条目,该通道位于ID为18的类别中,并且具有三个的url_title。
您的类别规范仅覆盖URL中的任何类别信息。(例如,/template_group/template/category/doorstops或/template_group/template/C10不会影响在示例中显示哪些条目)。
如果你想让你的{exp:channel:entries}
标签完全忽略URL(除了分页),你可以添加dynamic="off"
到你的标签参数