Drupal で遊んでいて、サイトのスローガンに 2 行目を追加しようとしています。以下は、私が作業している 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 var が定義されていないことです (ドキュメントによれば定義されているはずですが)。2 つ目の問題は、EntityMalformedException: Missing bundle property on entity of type node. in entity_extract_ids()
手動で定義して実行すると発生することです。
まず第一に、これは問題に対する正しいアプローチですか?次に、なぜ EntityMalformedException を受け取るのですか?どうすれば修正できますか?
var_dump($node)
NULL を生成します。良くない $node コンテンツを取得する方法に違いありません。それが言うとき、ドキュメントは私には少し不可解です:
$node: ページに関連付けられた自動的にロードされるノードがあり、ノード ID がページのパスの 2 番目の引数である場合のノード オブジェクト (例: node/12345 および node/12345/revisions、comment/reply/ ではない) 12345)。