Отображать URL-адрес и заголовок поля ссылки отдельно в шаблоне узла в Drupal 7

Если я напечатаю свое поле ссылки в шаблоне узла, например: [? Php print render ($ content ['field_link']); ?] Я получу это поле, как оно установлено в настройках отображения типа содержимого.

Но что, если я хочу, чтобы URL-адрес и заголовок этого поля распечатывались отдельно? Я мог бы распечатать конкретное значение в массиве, но согласно http://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way

Есть ли простой способ сделать это в Drupal 7. Спасибо!


person stormy    schedule 15.04.2013    source источник
comment
Вы должны использовать field_view_field. взгляните на api.drupal.org/ api / drupal / modules! field! field.module / function /   -  person crazyrohila    schedule 15.04.2013


Ответы (1)


Как указывает ваша ссылка, вы должны использовать:

$field = field_view_field('node', $node, 'field_name');

Это вернет отображаемый массив, в котором вы можете копаться и брать отдельные части.

Полный пример:

$node = node_load($nid);
$field = field_get_items('node', $node, 'field_name');
$output = render(field_view_field('node', $node, 'field_name', $field[0]));
echo $output;
person Mike Crittenden    schedule 15.04.2013
comment
Спасибо за ответ. Вот что я сделал: 1. Создаю поле field_link в типе содержимого 2. В шаблоне узла я распечатываю массив $ field code ‹? Php $ field = field_view_field ('node', $ node, 'field_link') ; печать ‹pre›; print_r ($ field); печать ‹/pre›; ? ›'Code' Но затем распечатывается полный массив узла ... например: code Array ([#theme] =› field [#weight] = ›0 [#title] =› link [#access] = ›1 [#label_display] =› выше [#view_mode] = ›_custom_display [#language] =› und [#field_name] = ›field_link - person stormy; 17.04.2013
comment
К моему ответу добавлен полный пример. - person Mike Crittenden; 23.04.2013
comment
Еще раз спасибо, Майк, я только что попробовал ваш фрагмент, но в конечном итоге у меня получилось следующее print render($field[0]['url']); print render($field[0]['title']); - person stormy; 24.04.2013
comment
В приведенном вами примере снова распечатана отображаемая ссылка с этикеткой. Поэтому я не использую field_view_field. Я что-то упустил? - person stormy; 24.04.2013