我正在为即将发布的新产品定制WordPress的后端。我正在试图找出最好的方法是更新显示在右上角adminbar中的头像大小。
我正在尝试设置图像大小30px x 30px,而不是默认的16px。有没有人能在不更新核心WordPress文件的情况下做到这一点?我想让WordPress成为未来的证明。
目前,我正在使用插件和一些js对管理面板设计进行所有更新。
任何帮助都将不胜感激。
丹尼尔
我正在为即将发布的新产品定制WordPress的后端。我正在试图找出最好的方法是更新显示在右上角adminbar中的头像大小。
我正在尝试设置图像大小30px x 30px,而不是默认的16px。有没有人能在不更新核心WordPress文件的情况下做到这一点?我想让WordPress成为未来的证明。
目前,我正在使用插件和一些js对管理面板设计进行所有更新。
任何帮助都将不胜感激。
丹尼尔
你需要加入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 );
(不要忘记覆盖管理样式表以显示更大的化身。)您可以使用过滤器get_avatar
. 这个$avatar
价值类似于:
<img alt=\'\'
src=\'http://0.gravatar.com/avatar/04ef?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516%3D32&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;
}
唯一的问题是,这不会影响管理栏用户的菜单。当用户登录到管理员时,我无法在前端显示管理员栏。我有wp\\u footer(),并且选中了用户配置文件中的复选框。有人能帮忙吗。