WordPress как на ладони
wordpress jino

Количество уникальных значений из custom-поля профиля пользователя

Приветствую всех! Очень прошу помощи написать правильный запрос к базе!

У пользователей (авторов) есть кастомное поле профиля – регион (выпадающий список).

Количество регионов у зарегистрированных пользователей я получаю так:

$regions = $wpdb->get_var("SELECT meta_key,COUNT(DISTINCT meta_value) FROM wp_usermeta WHERE meta_key = 'region'",1);
echo $regions;

У некоторых пользователей есть опубликованные посты в типа "articles". Возникла необходимость подсчитать сколько регионов "пишут" на сайте.

кол-во регионов = сколько уникальных значений (регион автора, если есть посты типа "article")

Честно признаюсь, я совсем не знакома с SQL sad

0
Гость 2.1 года назад
  • 0
    Kama4464
    $regions = $wpdb->get_var("SELECT meta_key,COUNT(DISTINCT meta_value) FROM wp_usermeta WHERE meta_key = 'region'",1);
    echo $regions;

    Это очень странный запрос, что он в итоге выводит?

    -

    Вам нужен такой запрос:

    global $wpdb;
    // пользователи которые пишут
    $sub_query = "SELECT DISTINCT post_author FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'article' ";
    
    // уникальные регионы
    $query = "SELECT DISTINCT meta_value FROM $wpdb->usermeta WHERE meta_key = 'region' AND user_id IN ($sub_sql)";
    
    $regions = $wpdb->get_col( $query );
    
    echo count( $regions ); // число регионов
    
    print_r( $regions ); // регионы в массиве
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.