【问题标题】:Writing a custom mysql query to order wordpress users by a custom user meta field编写自定义 mysql 查询以通过自定义用户元字段对 wordpress 用户进行排序
【发布时间】:2012-06-20 02:59:31
【问题描述】:

基本上,我需要按他们居住的城市订购 WordPress 用户列表。我有一个城市的自定义用户元字段,我的查询工作正常,但查询列出了所有没有'在开始时不填写城市,因为它在订单的开头放置了空白字段。

我需要弄清楚如何只选择和显示在城市字段中给出非空白值的用户。不幸的是,我发现自己被难住了。

关于如何做到这一点的任何想法?此外,如果有人知道使用 wp_user_query 来订购自定义用户元字段的方法,而不是这种混乱,我会全力以赴。

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$limit = 10;
$offset = ($paged - 1) * $limit;
$key = 'city';

$sql = "SELECT SQL_CALC_FOUND_ROWS {$wpdb->users}.* FROM {$wpdb->users}

INNER JOIN {$wpdb->usermeta} wp_usermeta ON ({$wpdb->users}.ID = wp_usermeta.user_id)
INNER JOIN {$wpdb->usermeta} wp_usermeta2 ON ({$wpdb->users}.ID = wp_usermeta2.user_id)
WHERE 1=1
    AND wp_usermeta.meta_key = 'wp_capabilities'
    AND CAST(wp_usermeta.meta_value AS CHAR) LIKE '%\"subscriber\"%'
    AND wp_usermeta2.meta_key = '$key'
ORDER BY wp_usermeta2.meta_value ASC
LIMIT $offset, $limit";

$site_users = $wpdb->get_results($sql);

$found_rows = $wpdb->get_var("SELECT FOUND_ROWS();");

foreach ($site_users as $site_user) { 
    // user info here
}

【问题讨论】:

    标签: mysql wordpress


    【解决方案1】:

    试试类似的东西

    ...
    WHERE 1=1
        AND wp_whatever.name_of_city IS NOT NULL
        AND LENGTH(wp_whatever.name_of_city) > 0
        AND wp_usermeta.meta_key = 'wp_capabilities'
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      相关资源
      最近更新 更多