自定义WordPress管理-如何更改头像大小

时间:2013-10-16 作者:Daniel

我正在为即将发布的新产品定制WordPress的后端。我正在试图找出最好的方法是更新显示在右上角adminbar中的头像大小。

我正在尝试设置图像大小30px x 30px,而不是默认的16px。有没有人能在不更新核心WordPress文件的情况下做到这一点?我想让WordPress成为未来的证明。

目前,我正在使用插件和一些js对管理面板设计进行所有更新。

任何帮助都将不胜感激。

丹尼尔

2 个回复
SO网友:Dero

你需要加入wp_admin_bar 操作并更改相应的对象。沿着这些思路做的事情会对你有好处。将以下代码放置到functions.php.

function _update_avatar_size( $wp_admin_bar ) {

    $user_id      = get_current_user_id();
    $current_user = wp_get_current_user();

    if ( ! $user_id )
        return;

    $avatar = get_avatar( $user_id, 30 );
    $howdy  = sprintf( __(\'Howdy, %1$s\'), $current_user->display_name );

    $account_node = $wp_admin_bar->get_node( \'my-account\' );

    $title = $howdy . $avatar;
    $wp_admin_bar->add_node( array(
        \'id\' => \'my-account\',
        \'title\' => $title
    ) );

}
add_action( \'admin_bar_menu\', \'_update_avatar_size\', 999 );
(不要忘记覆盖管理样式表以显示更大的化身。)

SO网友:brasofilo

您可以使用过滤器get_avatar. 这个$avatar 价值类似于:

<img alt=\'\' 
    src=\'http://0.gravatar.com/avatar/04ef?s=32&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516%3D32&amp;r=G\' 
    class=\'avatar avatar-32 photo\' height=\'32\' width=\'32\' />
TheDOMDocument 看起来很复杂,但是stuff done.

add_filter( \'get_avatar\', \'avatar_wpse_119123\', 15, 5 );

function avatar_wpse_119123( $avatar, $id_or_email, $size, $default, $alt )
{
    $doc = new DOMDocument;
    $doc->loadHTML( $avatar );
    $imgs = $doc->getElementsByTagName(\'img\');
    if ( $imgs->length > 0 ) 
    {
        $url = urldecode( $imgs->item(0)->getAttribute(\'src\') );
        $url2 = explode( \'?\', $url ); // roughly, the first part is the avatar, the second is the default avatar
        $avatar= "<img src=\'$url2[0]?s=30\' alt=\'\' class=\'avatar avatar-30 photo\' height=\'30\' width=\'30\' />";
    }
    return $avatar;
}
唯一的问题是,这不会影响管理栏用户的菜单。

结束