首页 > 解决方案 > ACF 自定义字段的 WordPress 用户查询?

问题描述

我之前问了一个问题,有人很乐意帮忙并指出我正确的方向,但现在我又被困住了,希望有人能提供帮助!:)

因此,我在连接到 ACF 的 wordpress 网站上有一个搜索表单。它采用 ACF 字段,然后将它们映射到分配了值的复选框,然后我想要获取并查询 WP_USER 数据库并检索与查询匹配的用户。因此,例如,用户配置文件将如下所示:

用户 1 介质:油漆、木材、珠宝 地点:巴黎

用户 2 介质:木材,珠宝 地点:伦敦

我遇到的问题是让 WP_USER_QUERY 做一些事情:

  1. 仅在 ACF 字段中查找匹配项。现在,我的查询查看整个配置文件,包括 ACF 字段,但我只想要与 ACF 字段匹配的结果。
  2. 能够通过一系列选项进行搜索(即通过 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 方式。

非常感谢!

标签: phpwordpressadvanced-custom-fields

解决方案


推荐阅读