【问题标题】:Display a text snippet if one of the taxonomy terms is 'green'?如果分类术语之一是“绿色”,则显示文本片段?
【发布时间】:2010-08-24 23:47:49
【问题描述】:

我希望能够根据是否使用特定分类术语标记节点上的文本 sn-p 来显示或隐藏它。

类似的东西:

if (term('green')) {
  echo"this is green";
}
else {
  echo "not green";
}

Drupal 的做法是什么?

【问题讨论】:

    标签: drupal drupal-6 taxonomy drupal-taxonomy


    【解决方案1】:

    从您的示例中假设您在 node.tpl.php 内部工作,并且您有一个非常具体的术语:

    您可以从您的 node.tpl.php 文件中访问$taxonomy->taxonomy_term_YourTermID,并在此基础上进行测试。

    如果您想要更抽象的解决方案,我建议您安装开发模块并根据相关节点中“开发”选项卡下显示的内容在您的 template.php 文件中构建一个函数。

    【讨论】:

    • $taxonomy->taxonomy_term_YourTermID 似乎不起作用。可以说它是 tid '7'。我将如何引用它?试过 $taxonomy->taxonomy_term_7。它不起作用。
    • 你在哪里添加代码? $taxonomy->taxonomy_term_7 应该在 Drupal 6 中工作,在 tpl.php 文件中。但是,如果您在 template.php 或其他地方添加代码,情况会有所不同。无论您在哪里工作,添加 dpm(get_defined_vars()) 应该可以帮助您了解可用的变量(如果您安装了 devel 模块)
    • 这也可能取决于您的测试方式:在 tpl.php 文件中,$taxonomy->taxonomy_term_X 返回一个数组('title' => 'foo_title', 'href' => ' foo_page', 'data' = array()) 如此简单的 if/then 测试可能无法按预期工作。
    • 我很可能没有正确使用它。我已将此添加到我的 node-colors.tpl.php: if ($taxonomy->taxonomy_term_7): ?> 这是绿色 else: ?> 不是绿色 这是正确的使用方式吗?
    • 您能否尝试在 if/else 块的任一侧添加 print('foo') 和 print('bar') 语句,让我知道结果是什么?我开始怀疑你的问题可能更基本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 2014-03-21
    相关资源
    最近更新 更多