WP_USER_QUERY未返回具有META的用户-我错过了什么?

时间:2015-04-03 作者:Shannon Mac

我想我在这里错过了一步,但就我个人而言,我看不到这一点。我试图显示一个简单的用户列表,这些用户对于某个键(即与学校相关的教师)都具有相同的角色和相同的元数据值。

这是我的代码:

    <div class="teachers-list">
            <h3>Your School\'s Teachers</h3>
            <ul>
                <?php

                $champion_user = wp_get_current_user();
                $school = $champion_user->school;

                // echo $school just to test it\'s right.... ?> 
                Your school: <?php echo $school; ?>

                <?php 


                $args = array( 
                     \'role\' => \'subscriber\',
                     \'meta_key\'    => \'school\',
                     \'meta_value\'  => $school
                );

                // The Query
                $user_query = new WP_User_Query( $args );

                // User Loop
                if ( ! empty( $user_query->results ) ) {
                    foreach ( $user_query->results as $user ) {
                        echo \'<li>\' . $user->display_name . \'</li>\';
                    }
                } else {
                    echo \'<li>No teachers found.</li>\';
                }
                ?>
            </ul>
        </div>  
school变量正确响应,但在WP\\u User\\u查询中,我只得到“找不到老师”的结果。如果我注释掉meta\\u key和meta\\u value字段,我会得到一个订阅者列表,这样就可以了。如果我手动编写我要查找的meta\\u值,在本例中为“school\\u one”,它仍然返回“找不到教师”。我检查了数据库中的usermeta表,所有用户都有学校元键和正确的学校值,所以。。。我被难住了。

我已经阅读并重读了WP\\u User\\u Query()和get\\u User\\u meta()的法典,并用WP 3.7之前的语法和当前的语法写出了这篇文章,但显然我没有抓住这篇文章的要点。我是否需要以某种方式重置查询?我也需要“比较”参数吗?我是否在参数中不正确地使用了$school变量?我已经尝试了很多方法,我不知道还剩下什么。

非常感谢您的帮助。提前感谢您的阅读。

2 个回复
SO网友:mukto90

尝试使用Subscriber, 有资本S.

$args = array( 
    \'role\' => \'Subscriber\',
    \'meta_key\'    => \'school\',
    \'meta_value\'  => $school
);
:)

SO网友:Shannon Mac

我最终解决了这个问题-db存储自定义密钥的meta\\u值的方式有问题。我必须修复usermeta db表-我使用了一个数据库检查插件,然后通过phpMyadmin进行修复,现在查询工作正常。感谢所有看过这个的人。

结束

相关推荐