显示特定内容类型的所有内容

时间:2011-08-12 21:57:49

标签: drupal drupal-7 content-type

对于每个分类术语,我都可以访问一个页面(我没有使用“视图”模块),显示使用以下路径标记特定术语的所有内容:www.example.com/taxonomy/term/1

现在,我想知道我是否可以使用诸如www.example.com/content/type/1之类的网址对内容类型(例如,显示内容类型文章的所有内容)执行相同操作。

2 个答案:

答案 0 :(得分:5)

我正在假设视图3.您可以创建一个视图并在URL中提供一个上下文过滤器,以动态显示该内容类型的所有节点。

添加“内容:类型”作为上下文过滤器。在“当过滤器不可用时”部分下,选择“提供默认值”,然后选择来自URL的原始值。对于您的示例,您将为路径组件选择“3”。

您可以将路径设置为“/ content / type /%”,其中%是内容类型的名称。但是,我不确定它是否适用于数值。

答案 1 :(得分:2)

在不使用Views模块的情况下,您应该创建一个自定义模块来执行该操作,这将执行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是传递给菜单项的字符串。

我报告的代码不会使用寻呼机,但它会在一个页面中显示所有节点。