我有一个自定义帖子类型 institutions
是关联用户。
每当我添加新用户时,我都可以通过 Advanced Custom Fields
插件选择他/她与哪个机构相关联。
现在设置已完成,我正在尝试显示与我当前正在查看的机构关联的所有用户的列表 (single-institutions.php
)
我不能使用 WP_Query()
因为它不允许我获取用户而且我不能使用 wp_list_authors()
因为它不允许元查询
。
所以我只能使用老式的 mysql 查询。
但我不确定如何继续,因为我需要查询多个表才能获得正确的结果。
wp_users: ID
wp_usermeta
user_id
meta_key: institution
meta_value: a:1:{i:0;s:4:"2875";} // "2875" is the ID of the institution the user is associated with
如何使用直接的 mysql 查询来实现这一点?
编辑:我已经切换到 WP_User_Query()
,我不知道它存在。但是,我不确定在 meta_value
$args = array(
'role' => 'Author',
'order' => 'ASC',
'orderby' => 'display_name',
'who' => 'authors',
'exclude' => [1, 7],
'count_total' => true,
'meta_key' => 'institution',
'meta_value' => $post->ID
);
// The User Query
$user_query = new WP_User_Query( $args );
// The User Loop
if ( ! empty( $user_query->results ) ) {
foreach ( $user_query->results as $user ) {
echo $user->display_name . '<br>';
}
} else {
// no users found
}
现在,没有显示任何内容。如果我从查询中删除“元值”,则与任何机构关联的所有用户都会出现在所有页面上。
如何缩小范围以匹配我当前正在查看的机构 ID ($post->ID
)?
这是 wp_usermeta
表中 meta_value
列的值。是连载的我是否需要执行任何特殊操作才能在最后检索 ID?
a:1:{i:0;s:4:"2875";}
最佳答案
你应该使用 WP_User_Query
这类似于 WP_Query
。更具体地说,在您的情况下,请查看 Custom Field Parameters并将机构的 ID
发送给它。
关于php - 获取与 WordPress 中自定义帖子类型关联的所有用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46993068/