1

Drupal 7 のコンテンツ タイプにカスタム フィールドを作成しました。このフィールドは、ページの別の領域にあるノードの外側に表示する必要があります。

$title 変数がどのように機能するか (これを page.tpl.php ファイルの好きな場所に配置できます) と同様に、現在のノードからデータを呼び出して $subtitle という別の変数を作成できるようにしたいと考えています。 page.tpl.php ファイルの領域に変数を出力できるようにします。

ビューとブロックを使用してこのタスクを実行しているように見えるビューの例を見たことがありますが、それは少し過剰に思えて、もっと簡単な方法があるかどうか疑問に思いました。

4

1 に答える 1

2

もっと簡単な方法があります。ただし、すべてのページがノード ページであるとは限らず、すべてのノード ページが適切なコンテンツ タイプであるとは限らないため、選択する必要があります。これをテーマの template.php ファイルに追加するだけです:

function mytheme_preprocess_node(&$vars) {
  $node = $vars['node'];
  if ($node->type == 'my_type') {
   $vars['subtitle'] = $node->field_my_field[LANGUAGE_NONE][0]['value'];
  }
}

次に、page.tpl.php次のようなことを行う必要があります。

if (isset($subtitle)) :
  echo $subtitle;
endif;

template.php にフックを実装したら、(admin/config/development/performance で) キャッシュをクリアしてください。そうしないと、Drupal がそれを取得しません。

于 2011-10-12T07:48:35.547 に答える