Главная/Статьи/Drupal 7: Как вывести кастомное поле в page.tpl.php
Drupal

Drupal 7: Как вывести кастомное поле в page.tpl.php

В Drupal 7 кастомные поля по умолчанию доступны в шаблоне node.tpl.php, но не в page.tpl.php. Это создаёт неудобства, когда нужно вывести поля рядом с заголовком страницы в едином шаблоне.

Решение заключается в использовании встроенных функций Drupal для рендеринга полей напрямую через объект ноды. Сначала проверяем существование поля, затем рендерим его значение.

Код решения

Добавьте следующий фрагмент в файл page.tpl.php:

field_image['und'])): ?>
  field_image['und'][0]); print render($temp_var); ?>

Как это работает

Здесь используются две стандартные функции Drupal:

field_view_value() — рендерит отдельное значение поля с полной темизацией. Принимает тип сущности, объект сущности, имя поля и значение поля.

render() — преобразует render array в HTML-строку и выводит результат.

Проверка через isset() перед обращением к полю обязательна — иначе на страницах без ноды (например, на главной) возникнет ошибка.

Замените field_image на имя вашего поля. Этот подход работает для любых типов полей: текстовых, изображений, ссылок и других.