WordPress->角色订阅者是否显示图像?

时间:2013-03-10 作者:Allen Payne

这就是交易。。我有Wordpress+bbPress与会员软件(aMember)集成。

在我的bbPress论坛上,我想在“人的用户名”下显示每个成员的Wordpress角色(而不是bbPress角色),以及根据每个成员的角色显示的图像。

例如

如果用户角色是subscriber->在bbpress中显示用户名下的角色->还显示下面的图像。

我之所以想显示Wordpress角色(而不是bbpress角色),是因为我的会员软件(amember)允许我根据用户的订阅设置不同的Wordpress角色。我在我的网站上有两个不同的会员计划(一个免费,一个付费),我想根据他们的计划在我的bbpress论坛上展示不同的图片。

我浏览了bbPress模板,发现了以下代码(在循环单回复.php中):

<?php bbp_reply_author_link( array( \'sep\' => \'<br />\', \'show_role\' => true ) ); ?> // this shows the bbpress role
<?php echo \'Points: \'.cp_getPoints(bbp_get_reply_author_id()); ?> // this shows the member points below the username - I use a points plugin)
现在,我如何将此代码替换为显示每个用户的Wordpress角色(而不是bbpress)的代码,并根据角色的不同在其下显示图像。例如:

如果是角色“订阅者”->则在其下显示角色+图像

如果是角色“Contributor”->则在其下显示角色+图像

如果是角色“管理员”->,则在其下显示角色+图像

我不是程序员,所以我不知道如何实现这一点。请帮忙。我找到了一些相关代码,我想我可以使用它们来实现这一点:

<?php if ( current_user_can(\'contributor\') ) : ?>
Content
<?php endif; ?>
现在,我失败的尝试如下所示:

<?php 
$user_roles = $current_user->roles;
$current_user = $bbp_get_reply_author_id; // i think this is wrong :P
$user_role = array_shift($user_roles);
?>
<?php if ($user_role == \'administrator\') : ?>

Show Role  
Show Image

<?php elseif ($user_role == \'editor\') : ?>

Show Role
Show Editor Image

<?php elseif ($user_role == \'author\') : ?>

Show Role
Show Author Image

<?php elseif ($user_role == \'contributor\') : ?>

Show Role
Show Contributor Image

<?php elseif ($user_role == \'subscriber\') : ?>

Show Role
Show Subscriber Image

<?php else : ?> 

Show Role

<?php endif ?>
我不知道我在做什么。。。上面的代码是我在谷歌上找到的。

有人能帮忙吗?

我会非常感激的。

1 个回复
SO网友:Jacob Rambo

<?php if ( current_user_can(\'contributor\') ) : ?> 仅检查用户功能,并按如下方式使用<?php if ( current_user_can(\'edit_post\') ) : ?>

您可以在中编写这样的函数functions.php:

function user_role_check( $role, $user_id = null ) {

  $user = wp_get_current_user();

    if ( empty( $user ) )
    return false;

  return in_array( $role, (array) $user->roles );
}
在你的主题中,你可以这样使用它:

<?php if ( user_role_check( \'administrator\' )): ?>

   Do this 

 <?php else: ?>

   Do this

<?php endif; ?>
了解有关角色和功能的更多信息:http://codex.wordpress.org/Roles_and_Capabilities

结束

相关推荐

如何通过引用登录的用户名来调用特定文件(通过php)?

我想设置一个页面,为属于特殊创建的用户角色(“map\\u user”)的每个网站注册用户显示不同的内容。因此,例如,如果属于“map\\u user”类别的站点用户登录到该站点,则会自动将其转发到特定页面。然后,此页面引用其用户名,根据该用户名调用特定的外部内容(html),并将其包含在页面中。我已经通过插件和功能的组合解决了第一个问题(根据用户角色转发用户)。但我正在努力完成第二部分,一旦他们到达目标页面。我已经为页面创建了一个模板,并在其中包含了以下php:<?php if ( is_arra