Поддержка Плагины Как суммировать значения поля Custom Fields?

  • Задача подбить сумму для всех значений поля Custom Fields под названием «rating» во всех опубликованных постах пользователем, например, «vovka».

    Т.е., «vovka» опубликовал пять постов, где в каждом ему присвоили по одному полю Custom Fields под названием «rating».

    Например, так:

    Пост 1 = 3
    Пост 2 = 4
    Пост 3 = 5
    Пост 4 = 3
    Пост 5 = 5

    т.е., мне нужно получить сумму этих полей, которая равна 20.

    Подскажите реально ли это реализовать и, если да, то как?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • более чем реально
    этап первый, узнать какой ID пользователя «vovka»
    этап второй, выбрать все записи данного пользователя по ID
    этап третий, циклом перебрать данные посты с выборкой произвольного поля по id поста, и сбором их в один масив.
    этап последний array_sum( $fields_values ) — т.е. суммируем все значения

    вариант 2: все это можно сделать одним SQL запросом, получится раз в 10 быстрее
    с помощью LEFT JOIN склеиваем 2 таблицы posts и postmeta и здесь же применяем числовую функцию SUM(имя столбца) получаем готовое число

    К сожалению с SQL вообще не умею работать 🙁 Конечно это вариант предпочтительнее раз быстрее, поэтому если не сложно буду очень признателен любой помощи.

    А так, сейчас, вот, сижу думаю, как с первым вариантом быть.

    Допустим ID пользователя «vovka» я вытащил, например:

    $userid = 3;

    теперь не знаю правильную ли функцию выбрал для второго этапа, но должно быть что-то вроде этого, как я понимаю:

    query_posts('author='.$userid.'&post_status=publish&meta_key=rating');

    а как теперь повытаскивать значения произвольного поля и запихнуть в массив ума не приложу…

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Как суммировать значения поля Custom Fields?» закрыта для новых ответов.