2011-08-12 10 views
2

すべてのタクソノミ用語については、次のようなaパスを使用して特定の用語でタグ付けされたすべてのコンテンツを表示するページにアクセスできます(ビューモジュールは使用しません)。 com/taxonomy/term/1。特定のコンテンツタイプのすべてのコンテンツを表示

ここでは、www.example.com/content/type/1などのURLを使用してコンテンツタイプ(コンテンツタイプの記事のすべてのコンテンツを表示するなど)についても同じことができるのだろうかと思います。

答えて

5

私はビューを作成し、そのコンテンツタイプのすべてのノードを動的に表示するためにURLにコンテキストフィルタを提供することができます。

「コンテンツ:タイプ」をコンテキストフィルタとして追加します。 「フィルタが使用できない場合」のセクションで、「デフォルト値を指定」を選択し、次にURLからRaw値を選択します。あなたの例では、パスコンポーネントに "3"を選択します。

パスを "/ content/type /%"に設定できます。%はコンテンツタイプの名前です。私はそれが数値で動作するかどうかは分かりません。

2

ビューモジュールを使用しないと、ビューを実行しているビューを実行するカスタムモジュールを作成する必要があります。 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メニュー項目に渡された文字列です。

私が報告したコードでは、ページャーは使用しませんでしたが、すべてのノードが1ページに表示されます。

+0

優れた答えです。 – mikevoermans

関連する問題