10

我一直在尝试使用 get_avatar在 wordpress 模板中的每个帖子下显示作者的 gravatar,但我找不到将 class="pic-2" 添加到 gravatar 图像代码甚至更改 gravatar 高度和宽度的方法分别为 100px 和 77px

<?php echo get_avatar( get_the_author_meta('ID'), 32 ); ?>

任何帮助家伙?

4

4 回答 4

18

我认为处理这个问题的最好方法是使用过滤器,而不是像 George 建议的那样使用 jQuery。您只需将其添加到主题的functions.php文件中即可。

add_filter('get_avatar','add_gravatar_class');

function add_gravatar_class($class) {
    $class = str_replace("class='avatar", "class='avatar pic-2", $class);
    return $class;
}

*注意,我没有对此进行测试,但相信它会起作用。有关更多信息,请参阅此线程

于 2013-04-03T02:02:29.903 回答
1

查看 WordPress Codex 了解更多信息:

http://codex.wordpress.org/Using_Gravatars

对于大小,尝试像这样包装第二个参数:

<?php echo get_avatar( get_the_author_meta('ID'), $size = '96' ); ?>

默认的 html 输出是这样的:

<img alt='' src='http://gravatarurl_or_default' class='avatar avatar-$size' height='$size' width='$size' />

您可以设置默认类 'avatar' 的样式来代替 'pic-2'。如果您仍想添加一个 class ,您可以通过 javascript 来完成,如下所示:

$("img[class='avatar']").addClass("pic-2");

希望这可以帮助!:)

于 2012-11-24T16:57:01.777 回答
1

如果@Ryan 回答(标记为解决方案)对您不起作用,请尝试更改

add_filter('get_avatar','add_gravatar_class');

function add_gravatar_class($class) {
    $class = str_replace("class='avatar", "class='avatar pic-2", $class);
    return $class;
}

进入

add_filter('get_avatar','add_gravatar_class');

function add_gravatar_class($class) {
    $class = str_replace('class="avatar', 'class="avatar pic-2', $class);
    return $class;
}

在将“替换为”之后,这个开始对我有用。

抱歉,我没有将此作为对该答案的评论,但我没有 50 名声望来评论其他帖子。

于 2017-02-16T14:54:14.720 回答
0

为将来的搜索者执行此操作的另一种方法,非常简单的字符串操作,如果他们将来更改函数可能会更安全一些,例如它可能总是有一个“类”。

    $grvimg = get_avatar('email address', 200);
    $grvimg = explode("class='", $grvimg);
    $grvimg[1] = 'your-class ' . $grvimg[1];
    $grvimg = $grvimg[0] . $grvimg[1];
    echo $grvimg;
于 2014-10-23T10:14:28.067 回答