對於每個分類術語,我可以訪問一個頁面(我沒有使用視圖模塊),顯示所有使用特定術語標記的內容,方法是使用如下所示的路徑:www.example。 COM /分類/術語/ 1。顯示特定內容類型的所有內容
現在,我想知道是否可以使用諸如www.example.com/content/type/1這樣的URL來處理內容類型(例如,顯示內容類型文章的所有內容)。
對於每個分類術語,我可以訪問一個頁面(我沒有使用視圖模塊),顯示所有使用特定術語標記的內容,方法是使用如下所示的路徑:www.example。 COM /分類/術語/ 1。顯示特定內容類型的所有內容
現在,我想知道是否可以使用諸如www.example.com/content/type/1這樣的URL來處理內容類型(例如,顯示內容類型文章的所有內容)。
我假設視圖3.您可以創建一個視圖,並在URL中提供上下文過濾器以動態顯示該內容類型的所有節點。
將「Content:Type」添加爲上下文過濾器。在「過濾器不可用時」部分下,選擇「提供默認值」,然後選擇網址的原始值。舉個例子,你可以選擇「3」作爲路徑組件。
您可以將路徑設置爲「/ content/type /%」,其中%是內容類型的名稱。但是,我不確定它是否可以使用數值。
如果不使用Views模塊,您應該創建一個自定義模塊來做到這一點,這將會做什麼Views已經在做什麼。 如果你不需要視圖中的所有功能,那麼你可以創建你自己的模塊,即使我不建議在視圖已經存在的時候這樣做。
您的模塊應該將菜單項關聯到像「content/type /%」這樣的路徑並呈現包含該內容類型的所有節點的頁面。
爲了渲染節點,你可以使用node_view_multiple()。對於檢索節點列表,並渲染它,你可以使用類似的代碼下列之一:
$query = new EntityFieldQuery();
$entities = $query->entityCondition('entity_type', 'node')
->entityCondition('bundle', $content_type)
->propertyCondition('status', 1)
->execute();
$nodes = entity_load('node', array_keys($entities['node']));
return node_view_multiple($nodes, 'teaser');
$content_type
是傳遞到菜單項的字符串。
我報告的代碼不會使用尋呼機,但它會顯示單個頁面中的所有節點。
優秀的答案。 – mikevoermans