web-dev-qa-db-ja.com

カスタムノードフィールドをページタイトルに追加する方法

ページタイトルに追加するカスタムノードフィールドがあります。これどうやってするの?

コンテンツタイプはプロパティのリストであり、領域のサイズと場所をタイトルの横に印刷したいと思います。

例えばラージマンション900平方フィート(シカゴ)

場所は、ドロップダウンリストの分類用語でもあります。

フィールドを抽出してpage.tpl.phpを使用するためにpreprocess_page関数が必要ですか?

2
Chris Lai

hook_preprocess_page template.phpファイルの関数は確かにそれを行う1つの方法です。

function MYTHEME_preprocess_page(&$vars) {
  $node = menu_get_object();
  if (isset($node->nid) && $node->type == 'article') {
    $data = $node->field_custom_field[$node->language][0]['value'];

    $vars['title'] = $vars['title'] . ' ' . $data;
  }
}

Page.tpl.phpで$title変数には、フィールドに基づいた新しい文字列を含める必要があります。

たとえば、ノードが正しいタイプであることを確認するなど、追加のチェックをいくつか実行することもできます。

[〜#〜]編集[〜#〜]

あなたのコメントに対処するには、次のようなことをしたいと思います:

$area_size = $node->field_area_size[$node->language][0]['value'];
$location = $node->field_location[$node->language][0]['value'];

$vars['title'] = "$vars[title] $area_size sq ft ($location)";
4
Clive

そのためのモジュールがあります: ページタイトル

このモジュールでは、ページタイトルを細かく制御できます。タイトルの構成方法のパターンを指定でき、コンテンツ作成ページでは、コンテンツのタイトルとは別にページタイトルを指定できます。

1
paul-m