Drupal通知:未定义的变量

时间:2016-01-27 21:57:40

标签: php drupal drupal-7

我刚刚在我的网站上安装了一个新的drupal主题,它运行得很好。突然之间,我在主页上收到了这个错误:

  

注意:未定义的变量:include()中的author_name(第1354行)   /tpl/node--blog.tpl.php)。

我检查了代码中的行,我不确定为什么会抛出这个错误(特别是因为我知道变量正在被使用?)

<img alt='<?php print $author_name; ?>' src='<?php print $author_avatar_url; ?>' srcset='<?php print $author_avatar_url; ?>' class='avatar avatar-75 photo' height='75' width='75' />

知道为什么会这样吗?谢谢!

3 个答案:

答案 0 :(得分:0)

print $author_name;替换为print $name;以在此处显示作者登录名。

您不想要用户名,但有些自定义字段&#34;名称&#34;?在这种情况下,请阅读this thread - 它包含您的案例所需的所有信息。

答案 1 :(得分:0)

您需要将'print'包装在'if'语句

    <img alt='<?php
                if(!empty($author_name)): 
                    print $author_name; 
                endif;
                   ?>'
    src='<?php print $author_avatar_url; ?>' srcset='<?php print $author_avatar_url; ?>' class='avatar avatar-75 photo' height='75' width='75' />
    endif;

答案 2 :(得分:0)

只是要添加Holera博士上面所说的内容,您需要将代码包装在if语句中,因为您只希望代码在具有该字段的节点上执行。

这通常发生在您拥有非必填字段(例如图像字段)的节点列表中。代码将在页面上可见的所有节点上运行,如果任何节点没有填写非必填字段,则会给出undefined variable的错误。因此,当您通过{{1 }}语句,表示代码仅对填写的字段有效。

希望这会对你有所帮助。