Это перевод моего блогпоста Writing robust code that uses fields, in Drupal 7
В семерке изменился способ прямого доступа к полям (cck в друпале 6.x). В шестерке мы пишем:
<?php
$field_val = $node->field_yourfield[0]['value'];
?>
В семерке уже надо писать:
<?php
$field_val = $node->field_yourfield[LANGUAGE_NONE][0]['value'];
?>
(во всяком случае, так рекомендуют писать официальные доки).
То есть, у нас появилось разделение значений поля по языкам.
Я уж не знаю, насколько это упростило создание кода, который хорошо работает с несколькими языками (сложных мультиязычных проектов в d7 я пока не делал) - надеюсь, упростило серьезно, но для "обычных" сайтов с одним активным языком этот подход добавляет некоторую головную боль разработчикам.
Проблема здесь в том, что надеяться на правильную работу константы LANGUAGE_NONE нельзя!
В небольшом очерке я рассмотрю варианты решения этой проблемы.
Прочитать статью: http://sidashin.ru/blog/safe-drupal7-fields-code