logo

Palette - 让它色彩缤纷🎨

Palette — 可视化页面构建器,无需专业设计背景。

在线演示 下载 Palette

滚动

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

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');