首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在菜单元素之前插入PHP,同时使用内置的菜单函数wp_nav_menu()

在菜单元素之前插入PHP,同时使用内置的菜单函数wp_nav_menu()
EN

WordPress Development用户
提问于 2019-03-21 08:57:03
回答 1查看 53关注 0票数 0

这是很难说的话,所以请容忍我。

我已经生成了一个wp_nav_menu,菜单-1,作为主菜单.

与基本的b*1相比,菜单相当复杂。可以根据用户是否登录来显示和隐藏部件。

因此,这些nav元素中的一个只显示用户登录时。上面写着“嗨,名字”作为导航项目。

我的任务是把用户头像放在这之前。但是,为了获得用户化身,我需要使用另一个WP函数get_avatar()。在后端的菜单部分,我看不到一个区域,在那里我可以为特定的导航放置代码。我也不能在wp_nav_menu()函数所在的标头中告诉它。

我知道如何得到用户的化身。我知道如何按照我的意愿来设计它。我不知道该怎么告诉它该放在哪里/我把代码放在哪里.

你们谁知道怎么做?

下面是我创建导航的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 'menu-1',
    'menu_id'        => 'main-menu',
    'container'      => '',
    ) );
?>

这是输出代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            Product Categories
            
                Metals
                Polymers
                Ceramics
                Alloys
                Composites
            
        
        Designer Spotlight
        My Boards
        Hi Jason

如果我要在css中这样做,并且只有一个资产可以放在那里:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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)
}

但我需要使用这段代码来抓取用户化身(未经测试--也许我也需要帮助处理这个代码片段):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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);
}

希望你能理解/帮助?

谢谢杰森。

编辑:仅仅为了重新打开这个函数,这个理论对于答案中的“正确答案”是正确的,但是我实际上并没有从函数返回化身:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        #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; ?>);
        }

现在我知道在代码中使用它的位置和方法了,有人能帮我让这个片段工作吗?

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2019-03-21 09:22:03

最简单的方法是在php模板中内联一些CSS。然后您可以用用户化身替换硬编码的图像URL,比如background-image: url("' . echo $avatarURL . ");

当然,你也需要修复你的代码片段才能得到化身。目前,您正在返回用户ID,然后尝试抓取化身。返回语句后的任何内容都是不可访问的代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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();

否则,您将开始编写一个自定义导航步行者,这要复杂得多。

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/332277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文