Drupal 10区块仅在内容含特定分类术语时显示的配置求助
Drupal 按特定分类术语控制区块显示的PHP代码实现
需求说明
需实现:仅当当前内容关联「Category」词汇表下ID为8的特定术语时,目标区块才显示——系统配置仅支持选择整个词汇表,因此用PHP代码实现。
实现代码
兼容旧版分类关联逻辑的代码
<?php // 验证当前页面为节点详情页 if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); // 检查节点是否关联了ID为8的分类术语 if (!empty($node->taxonomy) && isset($node->taxonomy[8])) { return TRUE; } } return FALSE; ?>
适配Drupal 7字段式分类的代码(推荐)
如果分类是通过自定义字段(示例字段名:field_category)关联的,用以下代码兼容性更强:
<?php if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); if (!empty($node->field_category)) { // 遍历节点关联的所有分类术语 foreach ($node->field_category['und'] as $term_item) { if ($term_item['tid'] == 8) { return TRUE; } } } } return FALSE; ?>
使用步骤
- 进入目标区块的配置页面,找到「可见性设置」
- 选择「PHP代码」选项,粘贴上述代码
- 保存配置即可
内容的提问来源于stack exchange,提问作者Antonio Gargiulo
相关产品推荐
相关产品推荐

