我有一个非常简单的页面,它显示了基于类别的文章列表,该列表存在于URL中。代码在这里:
{exp:channel:entries channel="news" limit="10" category="{segment_3}" disable="member_data|category_fields" paginate="bottom" orderby="date" dynamic="no"}
<a class="square_block" href="{url_title_path='news/article'}">
<div class="content_block">
<div class="news_block_headline">
{title}
</div>
<div class="news_block_text">
{exp:eehive_hacksaw words="30" append="..."}
{exp:remove_html}
{teaser}
{/exp:remove_html}
{/exp:eehive_hacksaw}
</div>
<div class="square_block_divider"></div>
<div class="news_block_date">
{entry_date format="%d/%m/%y"}
</div>
<div class="square_block_arrow"></div>
</div>
</a>
{/exp:channel:entries}
我想要做的是显示任何可能相关的子类别的文章。我该怎么做呢?我已经看过像GWCode Categories这样的插件,并进行了一些搜索,但大多数只关注获取子类别名称,而不是实际从中提取数据。
答案 0 :(得分:0)
好的,所以我使用GWCode Categories破解了这个。由于PHP解析问题,我不得不使用嵌入式模板。
我创建了一个名为widgets / news_specific_cats的模板,它看起来几乎与上面的代码完全相同,只是exp:channel:entries标记了一个嵌入变量,所以它看起来像这样:
{exp:channel:entries channel="news" limit="10" category="{embed:childCategories}" disable="member_data|category_fields" paginate="bottom" orderby="date" dynamic="no"}
然后在主页上我有一些PHP代码来获取父类和子类的列表,它们作为嵌入变量传递,如下所示:
<div style="display:none;">
{exp:gwcode_categories cat_id="{segment_3}"}
<?php
$childCategories .= "{cat_id}|";
?>
{/exp:gwcode_categories}
</div>
<?php
$childCategories = strip_tags($childCategories);
$childCategories = rtrim($childCategories, "|");
$childCategories = trim($childCategories);
?>
<div id="block_holder">
{embed="widgets/news_specific_cats" cats="<?php echo $childCategories; ?>"}
</div>
我将GWCode块包装在一个隐藏的div中,因为由于某些原因GWCode坚持将数据输出为格式化列表,所以我必须手动删除所有这些东西。基本上它只是将所有类别转换为条形分隔格式,EE用它来表示从多个类别中选择文章。我怀疑这是完成我所需要的最佳方式,但它确实有效。