logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

在特定内容类型的页面上显示区块

11/10/2025, by Ivan

有时我们需要让某个区块只显示在特定内容类型的页面上。Drupal 的标准区块可见性设置只能根据路径或用户角色进行控制。通过启用 PHP 模式并在区块的可见性设置中添加以下代码,我们可以让区块只在指定内容类型的页面上显示。

<?php
$match = false;
if (arg(0) == 'node' && is_numeric(arg(1))) {
  $nid = arg(1);
  $node = node_load(array('nid' => $nid)); 
  $type = $node->type; 
  if (isset($types[$type])) { 
    $match = TRUE;   
  }
} 
if (substr($_SERVER["REQUEST_URI"], 0, 6) == '/page/') {
  $match = TRUE;
} 
if (substr($_SERVER["REQUEST_URI"], 0) == "/node/add/page") { 
  $match = TRUE;
} 
return $match; 
?> 

例如,上述代码会让区块仅显示在内容类型为 Page 的页面以及“添加 Page”页面上。变量 $types 是一个包含内容类型机器名称的数组,例如:

$types = array('page' => 'page', 'news' => 'news');