【问题标题】:How to display taxonomy content on node--page in Drupal 7如何在 Drupal 7 中的节点页面上显示分类内容
【发布时间】:2018-03-05 22:28:57
【问题描述】:

我在 Drupal 7 中工作,并尝试渲染地图并根据特定分类中的内容构建列表。例如:

  • 各种位置被创建为单独的节点,并附有信息(标题、位置、电话号码、营业时间等)。
  • 位置节点中的一个字段是一个分类术语:市场。例如,东海岸或西海岸。

目前,此地图存在的唯一位置是分类术语市场模板,该模板会提取有关相应市场中每个位置的所有变量。

我想要做的是通过手动选择市场作为相关字段类型在不同的页面(节点页面)上显示地图。我可以让市场名称出现,但我无法获得有关子位置的任何信息!我该怎么做呢?我尝试过使用视图和块,但地图的模板非常复杂——我的理解(可能是错误的)是我需要访问的变量不能从视图/块系统中“模板化” .

有人知道如何访问页面模板上给定分类的节点信息吗?谢谢!

【问题讨论】:

  • 您可以使用预处理向$variables 添加有关分类的信息
  • 如果我理解正确,您可以使用views。安装,启用它,然后创建一个新的视图页面。并在过滤条件上添加Content: Has taxonomy term。这样您就可以加载节点或获取 nid/s 并加载节点内容。

标签: drupal drupal-7 drupal-taxonomy


【解决方案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 会给你一个nids 的列表,你可以从他们那里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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多