node_load()
тогда правильный доступ к полю как свойству, хотя я бы сделал это немного иначе, чтобы избежать жесткого кодирования локали:
$lang = LANGUAGE_NONE;
$node = node_load($nid);
$url = $node->url[$lang][0]['value'];
Метод, который вы используете дляполучить nid - это особенно хитрый способ получить его;Я бы сконцентрировался на рефакторинге этого и использовал бы EntityFieldQuery
и entity_load () вместо:
$query = new EntityFieldQuery;
$result = $query
->entityCondition('entity_type', 'node')
->propertyCondition('type', $node_type)
->propertyCondition('title', $title)
->execute();
// $result['node'] contains a list of nids where the title matches
if (!empty($result['node']) {
// You could use node_load_multiple() instead of entity_load() for nodes
$nodes = entity_load('node', $result['node']);
}
Вы хотели бы сделать это, особенно если titleне уникальное свойство, и если поле появляется на объектах, отличных от узлов.В этом случае вы удалите entityCondition()
.