1

您好,我在 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;   
}
4

1 回答 1

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);}to跳过if (!$avatar){...。现在,当函数传递一个 null user_id 时,它应该return TEMPLATE_URL . '/images/no_avatar.gif';

于 2012-09-19T19:38:00.527 回答