0

調べてみましたが、正しい答えが見つからないか、そのスキルがないようです。問題は、このエラーが発生していることです:

Notice: Undefined variable: node in include() (line 69 of /home/xwebmedia/public_html/ltr/sites/all/themes/ltr/page.tpl.php).

私が使用しているコードは次のとおりです。

<?php
if (count($node->field_adds) != 0)
{
    foreach($node->field_adds['und'] as $key => $value)
    {               
        $nid = $value['nid']; 
        $mywidget = node_view(node_load($nid));
        print drupal_render($mywidget);
    }       
}
?>

すべてが正常に機能しています。サイドバーに追加されたウィジェットを取得していますが、このエラー通知が表示されています。

で変数を定義する必要があることは知っていますが、template.phpうまくいかないことを試しました。

助言がありますか?

4

2 に答える 2

2

$node が設定されていることを確認します。

<?php
if (isset($node) && count($node->field_adds) != 0)
{
    foreach($node->field_adds['und'] as $key => $value)
    {               
        $nid = $value['nid']; 
        $mywidget = node_view(node_load($nid));
        print drupal_render($mywidget);
    }       
}
?>
于 2012-12-11T09:05:07.007 に答える
0

ページ テンプレート ファイルには$node、既定では変数がありません (ノードではないページを使用できるため、必須ではありません)。

menu_get_object()関数はここであなたの友達です:

$node = menu_get_object();
if ($node) {
  ...
}
于 2012-12-11T09:41:32.620 に答える