Rectangle avatars

时间:2014-03-26 作者:henrywright

我正在使用get_avatar() 输出我的用户的图像。

参考号:https://codex.wordpress.org/Function_Reference/get_avatar

可选的size参数允许我指定大小。然而,这是一个方形的化身。

如何输出矩形的化身。宽300px,高150px?

3 个回复
SO网友:unifiedac

据我所知,get\\u avatar()函数只允许平方值。这并不意味着你不能使用样式来显示矩形化身。基本上,您可以使用样式从宽度上“剃掉”150px。

因此,假设您的主题文件使用以下代码为帖子作者生成一个300 x 300像素的化身:

<?php echo get_avatar( get_the_author_meta( \'ID\' ), 300 ); ?>
然后,只需将化身图像封装在DIV标记中,即可进行样式设置,如下所示:

<div class="auth-avatar">
<?php echo get_avatar( get_the_author_meta( \'ID\' ), 300 ); ?>
</div>
然后使用CSS裁剪图像并将其居中:

.auth-avatar {
    width: 300px;
    height: 150px;
    overflow: hidden;
}

.auth-avatar img {
   width: 100%
}
这应该可以奏效。以下是对结果的篡改:

http://jsfiddle.net/wLg4a/20/

SO网友:kaiser

格雷瓦塔。com-远程服务(也称问题)的关键是,服务器上不会发生调整大小的操作。它发生在gravatar的服务器上:

http(s)://*.gravatar.com
See in source - 通过使用名为s. 因此,无论您做什么,Gravatar都会以1px到2048px之间的方形图像进行响应:

"$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}";
Gravatar具有API... 这不行,抱歉让你失望了。

解决方案-解决方案,因此在这种情况下,唯一的解决方案是CSS-BUT ... 您使用完全不同的头像和过滤器:

return apply_filters( \'get_avatar\', $avatar, $id_or_email, $size, $default, $alt );
因此,在理论上(未经测试),您可以执行以下操作:

add_filter( \'get_avatar\', \'wpse139329ResizedAvatar\', 10, 5 );
function wpse139329ResizedAvatar( $avatar, $id_or_email, $size, $default, $alt )
{
    $newAvatar = wp_get_image_editor( $avatar );
    if ( is_wp_error( $newAvatar ) )
        return $avatar;

    $newAvatar->resize( 500, 100, true );
    $info = pathinfo( $avatar );
    $newAvatar->save( $info[\'filename\'].$info[\'extension\'] );
    return $newAvatar;
}
无论如何,它应该沿着上面显示的线工作。

缺点是,除了完全关闭Gravatar之外,core不支持任何东西。原因很简单:WordPress。com的所有者与Gravatar的所有者是同一个人。com(以及其他一些公司,如Vaultpress)。因此,您将得到一个Gravatar,它是从服务器远程获取的(包括延迟),然后根本不会使用。

事情没那么糟

实际上是函数get_gravatar() 是“可插拔的”:

if ( !function_exists( \'get_avatar\' ) ) :
因此,如果您覆盖它,您可以用另一种为用户显示头像的方法来完全替换它。自己制作一个,获取一个插件,等等。

SO网友:Kumar

参考号:Gravatar Images, Gravatar仅支持方形图像,甚至函数引用get_avatar(), 声明单个参数。

然而,如果你真的想这样做,我想最好的选择是使用CSS。

结束

相关推荐

WordPress需要wp-app.php还是wp-apps.php?

我忽略的一些Wordpress博客突然在其顶部文件夹中生成了3个PHP文件:wp app。php、wp应用程序。php和wp寄存器。php,以前没有。根据谷歌的一些搜索结果检查他们的内容,表明我被一个常见的Wordpress漏洞所渗透。由于它们不断重新生成,我考虑将它们置为空白,并将文件权限设置为只读或更少。但如果WP需要它们,我不想损害站点功能。