对于每个分类术语,我都可以访问一个页面(我没有使用“视图”模块),显示使用以下路径标记特定术语的所有内容:www.example.com/taxonomy/term/1
现在,我想知道我是否可以使用诸如www.example.com/content/type/1之类的网址对内容类型(例如,显示内容类型文章的所有内容)执行相同操作。
答案 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
是传递给菜单项的字符串。
我报告的代码不会使用寻呼机,但它会在一个页面中显示所有节点。