基于角色细化用户分类查询

时间:2013-06-18 作者:talven

我有一组自定义用户分类法,我使用这些分类法对用户进行分组,然后在前端用以下代码显示这些用户(来自分类法-{term}.php)

<?php // Get each user from taxonomy
            $term_id = get_queried_object_id(); // Get Term ID
            $term = get_queried_object(); // Get term
            $users = get_objects_in_term( $term_id, $term->taxonomy );
            if ( !empty( $users ) && (/* Condition based on role here */) ) {
            ?>
                <?php foreach ( $users as $user_id ) { ?>
                    <div class="user-card">
                        <?php /* Image */ echo get_avatar( get_the_author_meta( \'user_email\', $user_id ), \'204\' ); ?>
                        <h2><?php /* Name */ the_author_meta( \'first_name\', $user_id ); ?> <?php the_author_meta( \'last_name\', $user_id ); ?></h2>
                        <p><?php /* Short Bio */ the_author_meta( \'short_bio\', $user_id ); ?></p>
                    </div>
                <?php } ?>
            <?php } ?>
代码运行得很好,但我想根据用户所扮演的角色细化结果。我有一个名为“不可见”的角色,它允许用户访问他们的个人资料,但在我将角色更改为可见的角色之前,他们在站点上不会可见。理想情况下,我想使用if (!user_has_role(\'invisible\'))

我已经tried different solutions 但我似乎做不好。

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

还有更通用的版本current_user_can() - user_can() 需要检查用户、功能或角色。

因此,您的伪代码将类似于:

if ( ! user_can( $user_id, \'invisible\' ) )

结束

相关推荐