ブロックを特定のカテゴリに分類されたページのみに表示する
特定のカテゴリページおよび、そのカテゴリに分類されたページが表示された場合のみブロックを表示するための方法です。
ブロックの設定の 「ページ固有の表示設定」 で、「以下の PHP コードが TRUE を返したら表示する (PHP モード - PHP に精通した方専用)」 を選択し、「ページ」 に以下の PHP コードを記述します。
表示の対象となるカテゴリが単一の場合
強調部分を表示の対象とするカテゴリの term ID に変更します。
<?php
$myterm = 163;
if ((arg(0) == 'node') && is_numeric(arg(1))) {
$terms = taxonomy_node_get_terms(arg(1));
foreach($terms as $term) {
if ($term->tid == $myterm) return TRUE;
}
}
if ((arg(0) == 'taxonomy') && (arg(1) == 'term') && (arg(2) == $myterm)) {
return TRUE;
}
return FALSE;
?>表示の対象となるカテゴリが複数ある場合
強調部分を表示の対象とするカテゴリの term ID に変更します。
term ID はそれぞれコンマ(,)で区切って入力します。
<?php
$myterms = array(8, 9, 12, 21);
if ((arg(0) == 'node') && is_numeric(arg(1))) {
$terms = taxonomy_node_get_terms(arg(1));
foreach($terms as $term) {
if (in_array($term->tid, $myterms)) return TRUE;
}
}
if ((arg(0) == 'taxonomy') && (arg(1) == 'term') && (in_array(arg(2), $myterms))) {
return TRUE;
}
return FALSE;
?>
[参考]
Show block by taxonomy term - Drupal 4.7 | drupal.org
トラックバック
トラックバックは承認後に表示されます。
URLから "-nospam" を削除してトラックバックを送信してください。