【问题标题】:Custom avatar function自定义头像功能
【发布时间】:2012-09-11 21:14:38
【问题描述】:

您好,我在 WordPress 上工作,我有一个高级主题,创建者不再支持,所以我正在尝试做出改变;我不确定这是否称为错误。访问者发表评论时在 cmets 上;在这种情况下,他的头像不是默认的“神秘”(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;   
}

【问题讨论】:

  • 这实际上不足以让我们为您提供帮助 - 我们需要知道什么函数正在调用 tgt_get_avatar_link,以及它正在传递什么 $user_id
  • 您好,非常感谢您的回复!我对 php 不够熟悉,无法回答您的问题,我发现向您展示所有代码的更好主意。我已经上传了 zip 文件中的所有代码,所以如果你下载并检查它,我真的需要你的建议,非常感谢这里是链接:Link
  • 抱歉,如果您无法在问题中发布代码,我将无法查看。而且,如果您对 PHP 不够熟悉,无法回答我的问题,我猜您可能无法应用我能想到的任何答案,而不是为您完成所有工作。听起来你可能需要雇人。不再支持高级主题太糟糕了,但我想作者可能有正当理由。
  • 是的,这太糟糕了。好吧,我想我可以找到调用 tgt_get_avatar_link$user_id 的函数了,我已经更新了问题,再次感谢!

标签: php wordpress function comments avatar


【解决方案1】:

如果评论作者没有定义头像,您希望显示默认图片。这似乎是您的条件中的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';

【讨论】:

  • 我已经尝试过了,对不起,我没有提到它,这是解决我的问题,但会创建新问题。如果另一个函数调用tgt_get_avatar_link 则返回空白头像...正如您所说,恐怕这就是作者不再支持此主题的原因...
猜你喜欢
  • 2012-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-02
  • 2021-01-11
  • 2012-05-07
  • 1970-01-01
相关资源
最近更新 更多