php - 获取与 WordPress 中自定义帖子类型关联的所有用户

标签 php mysql wordpress

我有一个自定义帖子类型 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/

相关文章:

php - MySQL Inner Join 查询给出错误

php - 如何根据在 PHP MySQL 和 JQuery 中输入的州名称自动完成城市列表

php - 从托管服务器使用 CodeIgniter 发送电子邮件

mysql - 在 Ruby on Rails 中查找或创建多条记录 - "find_or_create_all"

php - 如何在 WordPress 备份后每周发送邮件?

html - Wordpress Bootstrap 主题不使用样式

wordpress - 从 wp_get_archives 中排除类别?

php - Laravel - 显示 2 个表中的信息

php - MySQL:有索引和小文件排序更好还是没有索引和文件排序更好?

php - 你能在抽象类中声明一个私有(private)属性吗?