Это должно быть так просто, как:
$url = $node->field_name_of_field[$node->language][0]['url'];
Я немного разбью это на части:
Поля являются членами объекта узла и всегда имеют префикс field_
, поэтомуполе с именем my_field
можно найти с помощью $node->field_my_field
.
. Каждый элемент поля объекта узла сам по себе является массивом всех разных языковых версий для поля, введенных ключом языка.Чтобы получить доступ к значению поля для языка, который узел обозначен так, как вы используете: $node->field_my_field[$node->language]
или, возможно, $node->field_my_field[LANGUAGE_NONE]
(по умолчанию).
Кроме того, каждый языковой массив может иметь несколькозначения поля в нем, если количество элементов поля больше 1. Если у вас есть поле (например, изображения) с несколькими допустимыми значениями, вы можете просмотреть каждое из них следующим образом:
foreach ($node->field_my_field[$node->language] as $delta => $item) {
}
Внутри каждого элементаязыковой массив - это фактические значения полей.Поля могут иметь несколько столбцов (например, модуль связи имеет url
, title
и attributes
).Чтобы продолжить предыдущий пример, вы должны найти URL-адрес и заголовок следующим образом:
$url = $node->field_name_of_field[$node->language][0]['url'];
$title = $node->field_name_of_field[$node->language][0]['title'];
Надеюсь, это поможет!