这是很难说的话,所以请容忍我。
我已经生成了一个wp_nav_menu,菜单-1,作为主菜单.
与基本的b*1相比,菜单相当复杂。可以根据用户是否登录来显示和隐藏部件。
因此,这些nav元素中的一个只显示用户登录时。上面写着“嗨,名字”作为导航项目。
我的任务是把用户头像放在这之前。但是,为了获得用户化身,我需要使用另一个WP函数get_avatar()。在后端的菜单部分,我看不到一个区域,在那里我可以为特定的导航放置代码。我也不能在wp_nav_menu()函数所在的标头中告诉它。
我知道如何得到用户的化身。我知道如何按照我的意愿来设计它。我不知道该怎么告诉它该放在哪里/我把代码放在哪里.
你们谁知道怎么做?
下面是我创建导航的代码:
'menu-1',
'menu_id' => 'main-menu',
'container' => '',
) );
?>
这是输出代码:
Product Categories
Metals
Polymers
Ceramics
Alloys
Composites
Designer Spotlight
My Boards
Hi Jason
如果我要在css中这样做,并且只有一个资产可以放在那里:
#menu a[href$='/my-account/']:before {
content: '';
width: 30px;
height: 30px;
margin-right: 10px;
display: inline-block;
background-image: url(https://www.catster.com/wp-content/uploads/2018/06/bringing-home-kitty-mouth-open-wide.jpg)
}
但我需要使用这段代码来抓取用户化身(未经测试--也许我也需要帮助处理这个代码片段):
function get_current_user_id() {
if ( ! function_exists( 'wp_get_current_user' ) ) {
return 0;
}
$user = wp_get_current_user();
return ( isset( $user->ID ) ? (int) $user->ID : 0 );
$avatar_image = get_avatar($user);
}
希望你能理解/帮助?
谢谢杰森。
编辑:仅仅为了重新打开这个函数,这个理论对于答案中的“正确答案”是正确的,但是我实际上并没有从函数返回化身:
#menu a[href$='/my-account/']:before {
content: '';
width: 30px;
height: 30px;
margin-right: 10px;
display: inline-block;
background-image: url(<?php if ($avatarURL != '') : ?><?php echo $avatarURL; ?><?php endif; ?>);
}
现在我知道在代码中使用它的位置和方法了,有人能帮我让这个片段工作吗?
发布于 2019-03-21 09:22:03
最简单的方法是在php模板中内联一些CSS。然后您可以用用户化身替换硬编码的图像URL,比如background-image: url("' . echo $avatarURL . ");
。
当然,你也需要修复你的代码片段才能得到化身。目前,您正在返回用户ID,然后尝试抓取化身。返回语句后的任何内容都是不可访问的代码。
function get_current_user_avatar_url() {
if ( ! function_exists( 'get_current_user_id' ) ) {
return false;
}
$user = get_current_user_id();
return get_avatar_url($user);
}
然后像$avatarURL
一样定义$avatarURL = get_current_user_avatar_url();
否则,您将开始编写一个自定义导航步行者,这要复杂得多。
https://wordpress.stackexchange.com/questions/332277
复制相似问题