首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WordPress:基于自定义字段true/false隐藏用户

WordPress:基于自定义字段true/false隐藏用户
EN

Stack Overflow用户
提问于 2014-06-21 14:35:25
回答 1查看 683关注 0票数 2

我已经将一些代码合并在一起,为WordPress创建了一个侧栏小部件,它可以在列表中显示所有非订阅用户(即编辑器、贡献者和管理员)。

它还显示用户职务标题的自定义字段。

代码语言:javascript
复制
user_role

自定义字段通过高级自定义字段插件创建。

目前,这是很好的工作,但现在有一个要求,以隐藏特定的用户名单。我实现了另一个字段:真/假框。当勾选时,它应该在列表中显示用户。

代码语言:javascript
复制
user_hide

目前,我尝试过的一切都没有显示用户,也没有显示所有用户。

下面是处于原始状态的foreach用户,它将只显示不具有“订阅者”角色的用户。

代码语言:javascript
复制
foreach($allUsers as $currentUser)
{
    if(!in_array( 'subscriber', $currentUser->roles ))
    {
        $users[] = $currentUser;
    }
}

现在,它也需要“如果自定义字段是真”,但我不知道如何得到,但工作。在数据库中,在用户元下,键"author_hide“显示vlaue "1”表示true,"0“表示false。

我尝试了以下方法,但它仍然显示与原始用户相同的用户列表,尽管它已经遍历了所有用户,并在适当的情况下进行了滴答/保存:

代码语言:javascript
复制
$user_query = new WP_User_Query( array( 'meta_key' => 'author_hide', 'meta_value' => '1','meta_compare' => '==' ) );

foreach($allUsers as $currentUser)
{
    if(!in_array( 'subscriber', $currentUser->roles ) && $user_query)
    {
        $users[] = $currentUser;
    }
}

有什么想法吗?

以下是目前的职能:

代码语言:javascript
复制
function contributors() {

$allUsers = get_users('orderby=name&order=ASC');
$users = array();

echo '<ul class="authors-list">';

foreach($allUsers as $currentUser)
{
    if(!in_array( 'subscriber', $currentUser->roles ))
    {
        $users[] = $currentUser;
    }
}

foreach($users as $user)
    {
        ?>
        <li class="author-left author-light rounded-corners">
            <div class="rounded-corners">               
                <div class="rounded-corners">
                    <a href="<?php echo get_author_posts_url( $user->ID ); ?>">
                        <strong><?php echo $user->display_name; ?></strong>
                        <br>
                        <?php $user_role = get_user_meta($user->ID, 'author_role', true); if($user_role != '') { echo $user_role; } ?>
                    </a>
                </div>
            </div>

            <div class="pic">
                <a href="<?php echo get_author_posts_url( $user->ID ); ?>"><?php echo get_avatar( $user->user_email, '50' ); ?></a>
            </div>

        </li>
        <?php
    }
echo '</ul>';

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-21 15:37:58

在循环中,您可以使用高级自定义字段API为每个用户获取自定义字段。我会这样做:

代码语言:javascript
复制
foreach($allUsers as $currentUser) {

    $hide = get_field('user_hide', 'user_' . $currentUser->ID);

    if(!in_array( 'subscriber', $currentUser->roles ) && !$hide ) {
        $users[] = $currentUser;
    }

}

请注意,高级自定义字段要求您在调用user_时使用字符串get_field()在用户ID之前加上用户ID,这样函数就知道您没有尝试获取一个post。

更多信息可以找到在他们的文件里

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

https://stackoverflow.com/questions/24342620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档