自定义头像功能

时间:2012-09-19 14:23:49

标签: php wordpress function comments avatar

你好我在WordPress上工作,我有一个高级主题,创作者不再支持,所以我试图做出改变;我不确定这是否被称为错误。关于访问者发表评论时的评论;在这种情况下,他的头像不是默认的“神秘”(no_avatar.gif),但它会自动获取当前帖子作者的头像。我想显示未注册用户的默认值。我想要注意的是,主题是使用它自己的头像。我在函数上定位代码,但我无法更改它,任何帮助都将不胜感激,在此先感谢此处是代码:

function tgt_get_avatar_link($user_id = ""){
if (!empty($user_id)){
    $avatar = get_the_author_meta('tgt_image', $user_id);
}
else
$avatar = get_the_author_meta('tgt_image');
if (!$avatar){
    return TEMPLATE_URL . '/images/no_avatar.gif';
}
    return TEMPLATE_URL . $avatar;
}

更新:该函数正在调用tgt_get_avatar_link,但似乎是:

function tgt_ad_comment($comment, $args, $depth){
    $GLOBALS['comment'] = $comment;
    global $helper;
    ?>
    <li>
    <div class="comment" id="comment-<?php comment_ID()?>">
        <?php //echo get_avatar($comment) ?>
        <?php echo $helper->image(tgt_get_avatar_link($comment->user_id), $comment->comment_author, array('title' => $comment->comment_author, 'width' => '58px', 'height' => '58px'))  ?>
        <div class="comment_content">
            <strong><?php echo get_comment_author_link() ?></strong> <?php _e('Say ','ad')?>(<?php comment_time('F j, Y \a\t g:i a') ?>)
            <br/>
            <?php comment_text() ?>
        </div>

</div>

该函数正在调用$user_id,但似乎是:

function tgt_get_avatar_link($user_id = ""){
   if (!empty($user_id)){
    $avatar = get_the_author_meta('tgt_image', $user_id);
}
   else
    $avatar = get_the_author_meta('tgt_image'); 
   if (!$avatar){
    return TEMPLATE_URL . '/images/no_avatar.gif';
   }
   return TEMPLATE_URL . $avatar;   
}

1 个答案:

答案 0 :(得分:0)

如果评论作者没有定义的头像,您希望显示默认图像。这似乎是条件中的else

else { $avatar = get_the_author_meta('tgt_image'); }

如果没有$ user_id传递给get_the_author_meta,它会假定当前帖子作者的用户ID。这可能会导致您描述的行为。

尝试删除else语句,直接从if (!empty($user_id)){$avatar = get_the_author_meta('tgt_image', $user_id);}跳至if (!$avatar){...。现在,当函数传递null user_id时,它应该return TEMPLATE_URL . '/images/no_avatar.gif';