我正在尝试自动化一些列表,并且这样做需要运行一些PHP,PHP用于检测哪个类别与当前页面的url标题相同然后输出具有相同url的类别的ID标题。
然后,我想将此ID应用于产品列表,以便输出相关项目(如类别,但可以灵活地使用Structure)。
然而,我猜测是因为我在同一页面上定义变量,因为某些原因它没有工作,任何想法?我在模板中的PHP解析设置为“输出”。
{exp:channel:entries}
{categories}{if category_url_title == "{last_segment}"}<?php $category = '{category_id}'; ?>{/if}{/categories}
{/exp:channel:entries}
{exp:channel:entries category="<?php echo $category; ?>" dynamic="no" channel="products"}
<h2>{title}</h2>
{/exp:channel:entries}
答案 0 :(得分:2)
不要打扰!保持简单:
使用{last_segment_category_id}
替换上面的所有代码:
{exp:channel:entries category="{last_segment_category_id}" dynamic="no" channel="products"}
<h2>{title}</h2>
{/exp:channel:entries}
您的代码无法工作的原因是因为您希望第一部分首先运行EE,然后使用PHP来保存变量,然后您希望PHP继续并设置第二部分,然后您需要EE再次启动并使用PHP变量。它是一个接着另一个,而不是在我害怕之间跳跃。
另一种解决方法是使用嵌入:
第一个模板:
{exp:channel:entries}
{categories}{if category_url_title == "{last_segment}"}{embed="my-templates/2nd-template" category="{category_id}"}{/if}{/categories}
{/exp:channel:entries}
第二个模板:
{exp:channel:entries category="{embed:category}" dynamic="no" channel="products"}
<h2>{title}</h2>
{/exp:channel:entries}