Intereting Posts
Имея проблемы с разбиением на страницы WordPress с несколькими категориями Как сделать короткий код с разрывом строки в нем правильно разобрать? На странице категории Наверх! Эта страница не найдена Использование pre_get_posts для фильтрации по пользовательским полям при использовании статической главной страницы Как сделать две страницы в WordPress для отображения последних страниц и популярных страниц Автоматически импортировать блог WordPress на страницу Facebook Неактивная страница архива таксономии Нажатие кнопки «Добавить» для пользовательской таксономии перемещает только элемент Удаление и изменение страницы WordPress вручную и заголовка Как я могу использовать этот javascript правильно с wordpress? Автоматически извлекать новые сообщения и добавлять к текущей странице. Yoast SEO Plugin: Double Title isse Виджет боковой панели YouTube – недоступен сервис YouTube Файлы, сгенерированные в нескольких каталогах, предположительно с помощью WordPress (advanced_settings.php и common_config.php) Попытка переупорядочить сообщения по настраиваемой области

Запрос и сортировка комментариев по пользовательскому комментарию meta

Я добавил базовую «любимую / рекомендуемую» функциональность для сообщений и комментариев на сайт WordPress, над которым я работаю.

Я сохраняю общее количество комментариев «нравится» в настраиваемом мета-поле комментариев (update_comment_meta). Теперь я хотел бы запросить и отсортировать комментарии на основе этого настраиваемого мета-ключа и соответствующих значений, чтобы отображать популярные комментарии.

В идеале я хотел бы иметь возможность использовать такие параметры, как «meta_key» и «order_by = meta_value_num», похожие на WP_Query, но, похоже, запросы комментариев не поддерживают их.

Должен ли я использовать пользовательский письменный запрос к базе данных? Если да, может кто-нибудь дать мне начальный толчок о том, как подойти к этому?

Solutions Collecting From Web of "Запрос и сортировка комментариев по пользовательскому комментарию meta"

К сожалению, он не поддерживается применимыми функциями WordPress для запросов комментариев, что в первую очередь связано с (я чувствую), что недостаточно людей (или кого-либо), которые просят об этом.

Я хочу выделить пару основных файлов здесь, чтобы помочь понять проблему.


  • Первая функция comments-template.php , функция comment_template , эта функция запрашивает комментарии, а затем добавляет их в объект WP_Query .

    • См. Строку 882
    • Нет фильтров или действий, чтобы перехватить запрос до его возникновения или изменить его.

  • Следующая функция comments.php и get_comments , на этот раз вы не найдете поддержки для пользовательских сортировок, например. мета сортировка.

    • См. Строку 262
    • array_intersect ищет только совпадения, если это не тот массив значений, который вы видите там, тогда он не считается допустимым порядком.

В функции шаблона комментария есть один фильтр, который будет передаваться по всему массиву комментариев, называемых comments_array (вы увидите, что этот крючок в первом файле, который я связал в строке 892).

Вы можете перебрать массив комментариев, которые были извлечены, и создать новый массив, отсортированный на основе ваших метаданных (хотя вам, вероятно, потребуется специальный запрос, чтобы получить метаданные, если вы хотите быть максимально эффективными) ,

Я могу добавить пример жонглирования массива позже, если вам это нужно.