logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll

特定のコンテンツタイプのページにブロックを表示する

03/12/2019, by Ivan

あるコンテンツタイプの特定のページだけにブロックを表示する必要があることがあります。標準設定では、ブロックの可視性は特定のパスまたはユーザーのロールによってのみ設定されます。次のコードを、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');