メインコンテンツに移動

shirane lab

メインナビゲーション

  • ホーム
  • ブログ
  • Drush
  • 検索

パンくず

  • ホーム
  • ブログ
  • D7 でプログラムコードからフィールドを表示する方法

D7 でプログラムコードからフィールドを表示する方法

2013/02/27(水) - 21:31
shirane

ノード オブジェクト ($node) に定義されているフィールドの値をプログラムで表示するにはどうすればよいか。オブジェクトの要素に直接アクセスして出力することもできるが、Drupal 7 では field_view_field() API を使用する。

たとえば、システム内部名称が field_hoge というフィールドの場合は次のように呼び出す。

field_view_field('node', $node, 'field_hoge');

第1引数はエンティティの種類で 'node' か 'user' を指定できる。ここでは対象となるエンティティがノードなので 'node' を指定。第2引数は表示対象フィールドが格納されたオブジェクト。第3引数がフィールドのシステム内部名称。

さらに、第4引数として表示モードの名前または表示設定の配列を渡すこともできる。後者はフィールド設定 UI の [表示管理] タブでの指定に対応する。たとえば、フィールドのラベル表示を抑制したい場合は、次のようにオプションを指定する。

field_view_field('node', $node, 'field_hoge', array('label'=>'hidden'));

詳しくは、field_view_field() API のリファレンスを参照。

この関数は表示に必要なデータを格納した配列を戻り値として返却する。この配列を HTML コンテンツに変換するには render() 関数を使用する。まとめると、ノード ($node) の field_hoge フィールドのコンテンツを表示するコードは次のようになる。

$out = field_view_field('node', $node, 'field_hoge', array('label'=>'hidden'));
print render($out);

render() 関数は HTML コンテンツを返すだけで表示は行わないので、print や echo で戻り値を出力する必要がある点に注意。

参考にさせていただいた記事: 

  • Rendering Drupal 7 fields (the right way)
Drupal7
‹ 前の記事次の記事 ›

書籍

『D9 おいしいレシピ集2』がパワーアップして商業誌に

『D9 おいしいレシピ集2』がパワーアップして商業誌に

 書籍の一覧はこちら

 

タグ一覧

DrushDrupal9Drupal6ffdsmVagrant開発環境VirtualBoxDrupal7ComposerコミュニティDrupal5Migrate勉強会モジュールDocker書籍ubercartWindowsCKEditorArtisteerDrupal ONSENDrupal4MariaDBTwigデバッグthemingTomeテーマH5PインストールAnalytics仮想マシンCentOSMacREPLpsyshDruxtJSデカップルドヘッドレスNuxtQuizVue

サイト運営

シナジークエスト

© shirane lab