我正在玩Drupal,我试图添加第二行到网站的口号。 以下是我工作的page.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内容不好的方式。该文档对我来说有点神秘:
$ node:节点对象,如果存在与页面关联的自动加载的节点,并且节点ID是页面路径中的第二个参数(例如,节点/ 12345和节点/ 12345 /修订,但不是评论/回复/ 12345)。
$ node只有在实际查看节点时才可用。 (例如,在首页上它将不可用)。您收到错误消息,因为$ node对象为空。 “网站标语2”是一个静态文本吗?如果是这样,你应该尝试Drupal变量。 (get_variable()) –