Сортировка и вывод меток по произвольному полю

Условно у каждой новости (post) есть произвольное поле views. Оно отвечает за просмотры статьи.

Необходимо получить список тегов и количество просмотров статей, содержащие данные теги. Например: Алексей (10 views), Павел (5 views), Иван (3 views).

Полученная выборка основана на нескольких новостях, про Алексея было 2 новости по 5 просмотров каждая (здесь мы сложили 2 статьи и значение 2 тегов), а про Ивана всего 1 новость с 3 просмотрами.

Интересуют пути решения данной задачи, спасибо.

0
Mark
6.4 года назад
  • 0
    sholex 40 sholex.by

    Оптимальный вариант - использовать $wpdb
    https://wp-kama.ru/function/wpdb#query

    SELECT wp_terms.name, COUNT(*) FROM `wp_terms`
    JOIN wp_term_taxonomy ON wp_term_taxonomy.term_id = wp_terms.term_id
    WHERE wp_term_taxonomy.taxonomy = 'category'
    GROUP BY wp_term_taxonomy.taxonomy

    вариант 2:

    SELECT wp_terms.name, SUM(wp_termmeta.meta_value)  AS VIEWS 
    FROM `wp_terms`
    JOIN wp_term_taxonomy ON wp_term_taxonomy.term_id = wp_terms.term_id
    JOIN wp_termmeta ON wp_terms.term_id = wp_termmeta.term_id
    WHERE
    (wp_termmeta.meta_key = 'views')
    AND 
    ( wp_term_taxonomy.taxonomy = 'category')
    GROUP BY wp_term_taxonomy.taxonomy

    Вместо 'category' надо поставить вашу таксономию
    Вместо 'views' - название произвольного поля

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация