Я играю с Drupal, и я пытаюсь добавить вторую строку к слогану сайта. Ниже приведен фрагмент страницы.tpl.php, где я работаю.EntityMalformedException при получении пользовательского поля Drupal 7
<?php if ($site_name || $site_slogan): ?>
<div id="name-and-slogan" class="hgroup">
<?php if ($site_name): ?>
<h1 class="site-name">
<a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>">
<?php print $site_name; ?>
</a>
</h1>
<?php endif; ?>
<?php if ($site_slogan): ?>
<p class="site-slogan"><?php print $site_slogan; ?></p>
<?php endif; ?>
<?php
/* ADDED */
$node = menu_get_object();
$siteslogan2 = field_get_items('node', $node, 'field_siteslogan2');
?>
<?php if ($siteslogan2): ?>
<p class="site-slogan2"><?php print $siteslogan2; ?></p>
<?php endif; ?>
</div>
<?php endif; ?>
Я в основном добавлен новый тип содержимого с поля под названием siteslogan2 (field_siteslogan2), и теперь я хотел бы получить и показать его здесь. Первая проблема заключается в том, что $ node var не определен (даже если в соответствии с documentation это должно быть). Вторая проблема заключается в том, что я получаю EntityMalformedException: Missing bundle property on entity of type node. in entity_extract_ids()
, когда я определяю ее вручную и запускаю ее.
Прежде всего, это правильный подход к проблеме? Во-вторых, почему я получаю EntityMalformedException и как его исправить?
var_dump($node)
производит NULL. Должно быть, я получаю содержимое $ node, что не очень хорошо. Док немного загадочный для меня, когда он говорит:
$ узел: Объект узла, если есть автоматически загружен узел, связанный со страницей, а идентификатор узла является вторым аргументом в пути на страницах (например, узел/12345 и узел/12345/ревизии, но не комментарий/ответ/12345).
$ node доступен только в том случае, если вы действительно смотрите на узел. (например, на первой странице он недоступен.) Появляется сообщение об ошибке, потому что объект $ node пуст. Является ли «лозунг сайта 2» статическим текстом? Если это так, вы должны попробовать переменные Drupal. (Get_variable()) –