タイトルのコードでごめんなさい、私はそれを尋ねる明確な方法を考えることができませんでした。
locationコンテンツタイプのいくつかのノードと、それらのノードのティーザーを出力するビューがあります。node--location.tpl.phpティーザーが表示されているすべての場所に影響を与えるために、いくつかのカスタム設定を行いたいです。dpm($node)変数を取得するのが簡単な場合、一部のフィールド値が常に同じ場所にあるとは限りません。
たとえば、私にfield_phoneは同じ形式の電話番号しかありません。このビューの最初のノードでは、そのフィールドはのように構成されてい$node->field_phone['und'][0]['safe_value']ます。しかし、2番目のノードの場合は単純$node->field_phone[0]['safe_value']です。
私はそれundが翻訳に関係していることを知っており、おそらく「未定義」を意味します。サイトの翻訳やローカリゼーション、言語については何もしていません。そのため、このノードが他のノードとまったく異なっているわけではありません。
これは何が原因で、簡単にテストして値を取得するのに役立つ関数や何かがありますか、それとも自分でロールする必要がありますか?
編集:以下のクリスロックウェルが指摘していfield_get_items()ます。これで、先日作業していたサイトの問題が解決したようです。しかし今、別のサイトでは、私がここで取り上げた理由のために失敗しています。
3つのノードを出力するビューがあります。私はいくつかの理由から、dpm($node)中node--node-type.tpl.phpのファイル、私が取得6つの変数ダンプを。最初の一つは持っている$node->field_link_image['und'][0]-すべての5人ながら、含むこの同じノードの複製は-ちょうど持っています$node->field_link_image[0]。そして今、field_get_items()これらの最後の5つのノードで静かに失敗し、falseを返します。
だから私は私の元の質問に戻ります:一部のノード変数と他のノード変数の間のこの違いの原因は何ですか、そしてそれに対して何ができますか?
field_link_image複数の値を受け入れますか?
field_view_value()あり、$itemそれに渡されたデルタを信じるべきです。