如何在wordpress中使用多查询usermeta


function user_in_query($user_query) {
    global $wpdb;
    $country_value = $_GET['country'];
    $city_value = $_GET['city'];
    $user_query->query_from  .= " JOIN $wpdb->usermeta AS alias ON ($wpdb->users.ID = alias.user_id)";
    $user_query->query_from  .= " JOIN $wpdb->usermeta AS alias2 ON ($wpdb->users.ID = alias2.user_id)";
    $user_query->query_where .= " AND alias.meta_key = 'country' AND alias.meta_value = '".$country_value."'";
    $user_query->query_where .= " AND alias2.meta_key = 'city' AND alias2.meta_value = '".$city_value."'";  
}
add_action('pre_user_query','user_in_query');

当我在url wp-admin/users.php?country=US&city=Ohio中过滤结果不工作时,如何修复它?

我没有测试过,但我认为pre_user_query是一个过滤器,而不是一个动作。因此,您需要将add_action更改为add_filter,并让您的函数返回$user_query

请,请修复SQL注入漏洞。

最新更新