$ node変数からフィールドラベルを取得する


8

Drupal 7で、ノード内の特定のフィールドのラベルを取得するにはどうすればよいですか?

私が興味を持っている分野は、次のような構造です。

    [field_text_question1] => Array(
      [und] => Array(
        [0] =>配列(
          [値] =>セールスインターン
          [フォーマット] => 
          [safe_value] =>セールスインターン
        ) 
      )
    )

回答:


13

最良の方法は、field_info_instance($ entity_type、$ field_name、$ bundle_name)使用して、フィールドの特定のインスタンスに関する情報を取得することです。フィールドのラベルは、その関数から返された配列に含まれています。

 $info = field_info_instance('node','field_name','content_type_name');
 print $info['label'];

私はfield_nameを使用する必要がありますが、エンティティ変換を使用できますか?試してみたが
うまくいか

1

$node変数の内部を見ていると思います。そこでは利用できません。$node変数の内部に格納されるのはフィールド値のみで、フィールド設定(ラベルなど)ではありません。ラベルが必要な場合は、$content変数を調べてください。

$content変数は、MYTHEME_preprocess_node(&$variable)テーマテンプレート関数、node.tpl.phpおよびその他のいくつかで使用できます。

それが利用できない場合は、呼び出すことができます field_info_field($field_name)


0

ノードのフィールドラベルを印刷する最も簡単な方法は、次のとおりです。

<?php print $content['field_your_field_name']['#title']; ?>

(私は多くのprint_r配列とDrupalのオブジェクトの後にそれを発見しました!それが簡単なのなら、なぜどこにも説明されていないか、なぜ私がトリックを見つけられないほど隠されているのですか?そして長い間、この回答への質問...)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.