首先,我想说的是,如果放在正确的环境中,下面提供的所有代码都可以正常工作。我在wordpress菜单导航中只有php的问题,似乎无法正常工作。
我正在尝试在下拉菜单中显示用户角色(一次只能有一个角色)。 PHP代码:
<?php
$user = wp_get_current_user();
echo $user->roles[0]; ?>
下拉代码:
<ul id="primary-menu" class="navbar-nav ml-auto"><li class="nav-item menu-item menu-item-type-gs_sim menu-item-object-gs_sim"><a href="" class="nav-link">(Untitled)<small class="description"></small></a><small class="description"><div class="dropdown show"><a href="" class="nav-link">
</a><a class="nav-link btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<img src="http://ds.com/wp-content/uploads/ultimatemember/1/profile_photo-40x40.png?1561371663" class="gravatar avatar avatar-40 um-avatar um-avatar-uploaded" width="40" height="40" alt="pzo3xic" data-default="http://ds.com/wp-content/plugins/ultimate-member/assets/img/default_avatar.jpg" onerror="if ( ! this.getAttribute('data-load-error') ){ this.setAttribute('data-load-error', '1');this.setAttribute('src', this.getAttribute('data-default'));}"> pzo3xic
</a>
<div class="dropdown-menu show" aria-labelledby="dropdownMenuButton">
<h6 class="dropdown-header" href="/user/">Paid Subscriber</h6>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="/profile">View Profile</a>
<a class="dropdown-item" href="/private-lessons">Private Lessons</a>
<a class="dropdown-item" href="/logout">Log Out</a>
</div>
</div></small></li>
<li class="nav-item menu-item menu-item-type-taxonomy menu-item-object-category"><a href="http://ds.com/lessons/" class="nav-link">Lessons</a></li>
<li class="nav-item menu-item menu-item-type-post_type menu-item-object-page"><a href="http://ds.com/tests/" class="nav-link">Tests</a></li>
</ul>
我希望它显示如下(其中“付费订户”是用户的角色名称):
但是,当我用自定义的短代码“ [print_user_role]”替换“付费订户”时,它会显示文本而不是其中的功能。让我在这里指出,将我的简码添加到其他地方后效果很好。
问题: 头像以及下拉菜单都在通过菜单插件中的Shortcode添加的代码中。此插件(以及所有其他插件)在内部不支持php。
我尝试将简短代码添加到我的custom_functions.php中,然后通过将[my_custom_function_sc]粘贴到代码中来调用它,但是它什么也没有返回。
我对如何实现这种效果失去了想法。你们中有人在这里看到可能的解决方案吗?
EDIT 我认为我可能实际上将用户角色打印在某个块中的其他位置,然后使用jquery在块中复制文本并粘贴到我感兴趣的位置。你们中的任何人对如何实现这一目标有任何想法吗?我还没有真正使用过javascript / jQuery。
非常感谢
答案 0 :(得分:1)
您的代码似乎是正确的,除了这一行-> echo $ user-> roles [0];
正确的代码是-> echo $ user-> roles;