具有搜索列和元查询的WP用户查询

时间:2015-06-25 作者:Mathias

我正在尝试使用WP User query构建一个查询,可以在其中进行搜索

这是我的参数:

$args = array(
            \'role\'              => \'author\',
            \'number\'            => $limit,
            \'offset\'            => $offset,
            \'order\'             => $order_sort,
            \'orderby\'           => $order_by,
            \'search\'            => \'*\'.esc_attr( $search_str ).\'*\',
            \'meta_query\'        => array(
                \'relation\'      => \'AND\',
                array(
                    \'key\'       => \'reg_complete\',
                    \'value\'     => 1,
                    \'compare\'   => \'=\',
                ),
                array(
                    \'relation\'    => \'OR\',
                    array(
                        \'key\'     => \'first_name\',
                        \'value\'   => $search_str,
                        \'compare\' => \'LIKE\'
                    ),
                    array(
                        \'key\'     => \'last_name\',
                        \'value\'   => $search_str,
                        \'compare\' => \'LIKE\'
                    )
                ),
            )
        );
如果搜索名字/姓氏,工作正常。。。但名字/电子邮件不匹配

知道怎么解决吗?

编辑:从参数中删除search\\u列并添加此筛选器:

add_filter( \'user_search_columns\', \'my_user_search_columns\', 10, 3 );

function my_user_search_columns( $search_columns, $search, $this ) {
    $search_columns[] = \'user_email\';
    $search_columns[] = \'user_nicename\';

    return $search_columns;
}
更改前的结果相同

1 个回复
SO网友:James Barrett

您需要使用user_search_columns 筛选以添加要搜索的列。

user\\u search\\u columns筛选器用于确定在搜索用户信息时使用数据库中的哪些用户字段。

https://codex.wordpress.org/Plugin_API/Filter_Reference/user_search_columns

结束

相关推荐

Where is search.php?

我在Wordpress 4.0.1上有一个网站,但我找不到搜索。php。数据库批处理过程已将模板应用于默认搜索结果页面,但我现在找不到该页面以将其更改回原来的页面。如何更改此页面的模板?在我的主题中创建一个新的“search.php”会有帮助吗?如果是,此文件应包含哪些内容?