如何在 Drupal 7 中的节点页面上显示分类内容
Posted
技术标签:
【中文标题】如何在 Drupal 7 中的节点页面上显示分类内容【英文标题】:How to display taxonomy content on node--page in Drupal 7 【发布时间】:2018-03-05 22:28:57 【问题描述】:我在 Drupal 7 中工作,并尝试渲染地图并根据特定分类中的内容构建列表。例如:
各种位置被创建为单独的节点,并附有信息(标题、位置、电话号码、营业时间等)。 位置节点中的一个字段是一个分类术语:市场。例如,东海岸或西海岸。目前,此地图存在的唯一位置是分类术语市场模板,该模板会提取有关相应市场中每个位置的所有变量。
我想要做的是通过手动选择市场作为相关字段类型在不同的页面(节点页面)上显示地图。我可以让市场名称出现,但我无法获得有关子位置的任何信息!我该怎么做呢?我尝试过使用视图和块,但地图的模板非常复杂——我的理解(可能是错误的)是我需要访问的变量不能从视图/块系统中“模板化” .
有人知道如何访问页面模板上给定分类的节点信息吗?谢谢!
【问题讨论】:
您可以使用预处理向$variables
添加有关分类的信息
如果我理解正确,您可以使用views。安装,启用它,然后创建一个新的视图页面。并在过滤条件上添加Content: Has taxonomy term
。这样您就可以加载节点或获取 nid/s 并加载节点内容。
【参考方案1】:
您的地图目前存在于taxonomy-term--markets
,我认为这是分类术语模板级别而不是页面模板级别。默认情况下,分类页面将显示与 tid
术语相关的节点列表。在您的 template.php
文件中添加分类模板预处理 function
function your_theme_preprocess_taxonomy_term(&$variables)
$nodes = taxonomy_select_nodes($variables['term']->tid);
var_dump($nodes);
$nodes
会给你一个nid
s 的列表,你可以从他们那里node_load
让你访问节点信息。
如果您知道分类术语tid
,则在page--node--page
模板级别上,您可以创建页面预处理功能。所以在你的 your_theme/template.php
function your_theme_preprocess_page(&$variables)
//Assuming you know your tid
$variables['mynodeinfo'] = taxonomy_select_nodes(tid));
并在您的page--node--page
模板上通过
var_dump($nodeinfo);
【讨论】:
以上是关于如何在 Drupal 7 中的节点页面上显示分类内容的主要内容,如果未能解决你的问题,请参考以下文章