3

我遇到了一个问题,网址中的第三个“段”将导致所有exp:channel:entries 停止返回结果。

示例 URL:
工作正常: siteurl.com/index.php/one/two
不起作用: siteurl.com/index.php/one/two/three

条目拉取示例:
{exp:channel:entries channel="my_channel" category="18" sort="asc" search:show_toggle="=SHOW" orderby="sort_order"}

这是某种我不知道的注射吗?我已经搜索了文档,据我所知,我的类别规范应该覆盖 url 中的任何内容。我可能搞砸了,但我必须做点什么。?我可以在频道模块中修改什么?

4

2 回答 2

5

如果在您的频道条目标记中不使用动态标记参数,ExpressionEngine期望URL 段变量包含您的条目的条目 IDURL 标题

由于第三个 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 段对于理解和解决此类问题非常重要。

于 2011-08-05T21:09:33.597 回答
3

ExpressionEngine 会查看 /index.php/ 之后的段,如下所示:

  • 第一段假定为模板组
  • 下一段假定为该模板组中的模板名称
  • 第三段被假定为条目的url_title,或者,如果段是数字,则为条目​​的entry_id

因此,在您的情况下,EE 正在寻找从一个模板组加载两个模板,然后显示来自my_channel频道的条目,该条目位于 ID 为18且 url_title 为3的类别中。

您对类别的规范只会覆盖 URL 中的任何类别信息。(例如,/template_group/template/category/doorstops/template_group/template/C10不会影响在您的示例中显示哪些条目)。

如果您希望您的{exp:channel:entries}标签完全忽略 URL(分页除外),您可以添加dynamic="off"到您的标签参数。

于 2011-08-05T18:55:25.980 回答