我正在玩 Drupal,我正在尝试在站点口号中添加第二行。以下是我正在工作的 page.tpl.php 部分。
<?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 变量没有定义(即使根据文档它应该是)。第二个问题是我EntityMalformedException: Missing bundle property on entity of type node. in entity_extract_ids()
手动定义并运行它时收到的。
首先,这是解决问题的正确方法吗?其次,为什么我会收到 EntityMalformedException 以及如何修复它?
var_dump($node)
产生 NULL。一定是我获取$node内容的方式不好。当文档说:
$node:节点对象,如果有与页面关联的自动加载节点,节点ID是页面路径中的第二个参数(例如node/12345和node/12345/revisions,但不是comment/reply/ 12345)。