打印具有相同字段值的内容的频道内容

时间:2011-07-26 10:13:49

标签: expressionengine

使用Expression Engine我需要在作业页面上显示其他可用作业。工作是合同或永久性的,在工作页面上我只需要显示相同类型的其他工作。

以下打印所有其他作业及其类型:

    {exp:channel:entries channel="jobs" dynamic="no"}                                 
        <p>{title}
        {job_type}</p>
    {/exp:channel:entries} 

这将仅打印所有联系人作业:

    {exp:channel:entries channel="jobs" search:job_type="Contract" dynamic="no"}                                  
        <p>{title}
        {job_type}</p>
    {/exp:channel:entries} 

因此,我尝试使用{job_type}字段来优化搜索结果。但是有了以下内容我根本得不到任何结果:

    {exp:channel:entries channel="jobs" search:job_type="{job_type}" dynamic="no"}                                
        <p>{title}
        {job_type}</p>
    {/exp:channel:entries} 

有人说我需要使用PHP标签,所以我尝试了以下内容,但它返回了所有结果:

    {exp:channel:entries channel="jobs" search:job_type="<?=$this->EE->input->get('job_type')?>" dynamic="no"}                                
        <p>{title}
        {job_type}</p>
    {/exp:channel:entries} 

我如何实现我的需要?我是EE的新手,但我认为这会是一些标准的东西?

注意,URL结构不允许我使用网址段来过滤结果。 谢谢

1 个答案:

答案 0 :(得分:0)

您无法嵌套{exp:channel:entries}标记,因为它会导致可变冲突。您需要使用embedded template,并将{job_type}值传递给该模板。

所以在你的主{exp:channel:entries}循环中:

{embed="embeds/more_jobs" job_type="{job_type}"}

然后您的 embeds / job_type 模板如下所示:

{exp:channel:entries channel="jobs" search:job_type="{embed:job_type}" dynamic="no"}                                
    <p>{title}
    {job_type}</p>
{/exp:channel:entries}