2011-11-22 52 views
0

我有一個類別結構如下所示:Expression Engine - 對於entrys列表,只顯示樹中的最後一個類別?

cat1 
cat2 
-catA 
-catB 
cat3 

有關條目林示出用於每一個與本的類別名稱的列表: {類別show_group =「1」} {CATEGORY_NAME} {/類別}

如何限制類別名稱只顯示樹中的最後一個? EG如果一個條目是'cat2'和'catA'的一部分,我只想'catA'顯示。

感謝

更新 - 伊夫嘗試以下,但返回TOTAL_RESULTS項條目的數量,類別爲每個條目的數量不限。

{exp:channel:entries channel="news|blog" category="<?php echo $cat_id ?>" orderby="date" sort="desc" disable="member_data|pagination" dynamic="no"} 
    {categories show_group="1"}{if count == total_results}{category_name}{/if}{/categories}  
{/exp:channel:entries} 

回答

1

有效的方法是編寫一個SQL查詢以獲得您想要的值。低效但簡單的方法是隱藏除最後一個之外的所有結果。

{!-- requires PHP parsed on output --} 
<?php $lastCat = ""; ?> 
{categories} 
    <?php $lastCat = "{category_name}"; ?> 
{/categories} 
<?php echo $lastCat; ?> 

原來{分類}標籤對中不支持{count}和{total_results}。您可以使用PHP來替代。

效率是否足夠好取決於您擁有多少類別以及緩存頁面的效率。

+0

在這種情況下效率不高。我試過你的代碼,所有的類別都消失了。購買打印{total_results}我可以看到,數字是條目的數量,而不是每個條目的類別數量。我用我的代碼更新了問題。謝謝 – Evans

+0

我試着將{category_name}移動到一個嵌入模板,但它不起作用。 – Evans

+0

要在嵌入中執行此操作,您可以使用{exp:channel:categories},但這會產生很多開銷。我上面的代碼示例工作;它在{exp:channel:entries}標籤內。只要確保打開輸出上的PHP解析。 – Mike3d0g

相關問題