我想我在这里错过了一步,但就我个人而言,我看不到这一点。我试图显示一个简单的用户列表,这些用户对于某个键(即与学校相关的教师)都具有相同的角色和相同的元数据值。
这是我的代码:
<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变量?我已经尝试了很多方法,我不知道还剩下什么。
非常感谢您的帮助。提前感谢您的阅读。