php - ACF 自定义字段的 WordPress 用户查询?
问题描述
我之前问了一个问题,有人很乐意帮忙并指出我正确的方向,但现在我又被困住了,希望有人能提供帮助!:)
因此,我在连接到 ACF 的 wordpress 网站上有一个搜索表单。它采用 ACF 字段,然后将它们映射到分配了值的复选框,然后我想要获取并查询 WP_USER 数据库并检索与查询匹配的用户。因此,例如,用户配置文件将如下所示:
用户 1 介质:油漆、木材、珠宝 地点:巴黎
用户 2 介质:木材,珠宝 地点:伦敦
我遇到的问题是让 WP_USER_QUERY 做一些事情:
- 仅在 ACF 字段中查找匹配项。现在,我的查询查看整个配置文件,包括 ACF 字段,但我只想要与 ACF 字段匹配的结果。
- 能够通过一系列选项进行搜索(即通过 Wood 和 Paint in Medium 搜索并返回用户 1 和用户 2)
我的结果很奇怪。目前,我的查询设置如下:
$user_query = new WP_USER_QUERY($args = array(
'role' => 'artist',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'artist_medium',
'value' => array($medium),
'compare' => 'LIKE',
),
array(
'key' => 'studio_region_location',
'value' => array($location),
'compare' => 'LIKE',
)
)
));
现在 $medium 和 $location 的 print_r 将如下所示:
Wood, Paint
Paris, London
但是 WP_USER_QUERY 将再次返回整个用户列表,而不是实际过滤它。
出于好奇,我尝试更改逻辑以在没有如下变量的情况下使用它:
$user_query = new WP_USER_QUERY($args = array(
'role' => 'artist',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'artist_medium',
'value' => array('Jewelry', 'Mixed Media'),
'compare' => 'LIKE',
)
)
));
但同样,我只是再次获得每个用户的列表。如果我将“比较”更改为“喜欢”以外的任何内容,我将得不到任何结果。但是,如果我将查询更改为如下所示:
$user_query = new WP_USER_QUERY($args = array(
'role' => 'artist',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'artist_medium',
'value' => 'Wood',
'compare' => 'LIKE',
)
)
));
我至少可以让它正常工作......所以我完全迷路了。:(。另一个非常善良的用户说要构建一个直接的 SQL 类型的查询,我不反对这样做,只是更喜欢使用 WP_USER_QUERY 方式。
非常感谢!
解决方案
推荐阅读
- python - 从两列或多列 pandas 中计算每天唯一出现的次数
- laravel - 如何检查来自哪个站点的用户来到我的站点?
- python - Flask TemplateNotFound
- stackdriver - 当没有更多可用数据的时间序列违反政策时,解决 stackdriver 事件
- sql-server - 关于顺序运行存储过程时的表锁
- r - 匿名数据的字符串相似性分组
- google-sheets - 如何根据不同工作表的同一行上的值搜索和测试日期?
- forms - 与数字输入相关的单位
- javascript - 我无法使用 .map 从数据库中呈现我的数据
- symfony - 具有多个数据源的 Api-Platform,如何使用 Doctrine 或 ElasticSearch 映射实体