Комментарии детей не отображаются в wp_comment_query

Вопрос или проблема

Я работаю над функцией, которая загружает больше отзывов Woocommerce, когда нажата кнопка. У меня всё работает, кроме того, что ответы от владельца магазина не отображаются под отзывом.

Я провел некоторое тестирование и обнаружил следующее: когда владелец магазина отвечает на отзыв, отображаемый при первоначальной загрузке страницы, ответ показывается.

Когда кнопка нажата, чтобы загрузить больше отзывов – даже если на заднем плане сайта есть дочерний элемент – дети не отображаются.

Вот мои аргументы запроса для комментариев:

$args = array(
        'number' => 10,
        'type' => array( 'review', 'comment' ), // Пробовал "comment", потому что ответ - это комментарий, а не отзыв
        'status' => 'approve',
        'post_id' => $_POST['id'],
        'meta_query' => array(
            array(
                'key' => 'rating', // Необходимо для фильтрации по рейтингу
                'value' => $_POST['rating'],
                'compare' => '=',
                'type' => 'NUMERIC'
            )
        ),

    );

Я пытался закомментировать meta_query выше, но все равно безуспешно.

Основная проблема:

Если я var_dump(get_comment(parent_comment)), он говорит, что нет детей. Что я делаю не так?

Ответ или решение

Если вы сталкиваетесь с проблемой отсутствия отображения дочерних комментариев в wp_comment_query, особенно при использовании Woocommerce для загрузки отзывов, возможно, есть несколько аспектов, которые стоит рассмотреть и исправить. Давайте подробно разберем возможные причины проблемы и предложим решения, используя подход FOREST.

Фокус на Проблеме (Focus on the Issue)

Основная проблема заключается в том, что после загрузки дополнительных отзывов по клику на кнопку, ответы от владельца магазина не отображаются. При этом, при начальной загрузке страницы ответы видны. Вы пытались использовать var_dump(get_comment(parent_comment)), который говорит, что у основного комментария нет детей, и также попробовали исключить meta_query — но это не помогло.

Обсуждение Технических Моментов (Offer Technical Insights)

  1. Проверка правильности аргументов в wp_comment_query:

    • Убедитесь, что ваш аргумент 'post_id' => $_POST['id'] корректно получает идентификатор поста, с которым связаны комментарии. Если передается неправильный ID, это может привести к тому, что комментарии вообще не загружаются.
  2. Учет параметра ‘hierarchical’

    • При использовании wp_comment_query важно учитывать иерархическую структуру комментариев. Убедитесь, что ваш запрос курирует и возвращает ответы, используя 'hierarchical' => true в настройках WordPress.
  3. Корректировка аргументов запроса:

    • Попробуйте изменить аргументы для загрузки комментариев, добавив 'parent' => 0 для загрузки только родительских комментариев, и затем использовать отдельный запрос или функцию для загрузки их дочерних комментариев.
    $args = array(
       'number' => 10,
       'type' => 'comment',
       'status' => 'approve',
       'post_id' => $_POST['id'],
       'parent' => 0,  // Получить только родительские комментарии
       'meta_query' => array(
           array(
               'key' => 'rating', // Только если рейтинг используется в меню фильтрации
               'value' => $_POST['rating'],
               'compare' => '=',
               'type' => 'NUMERIC'
           )
       ),
    );

Решение Проблемы (Resolve the Issue)

Если c вашими текущими аргументами не получается, попробуйте найти уникальное решение, как в коде ниже, чтобы загрузить дочерние комментарии:

  1. Получите все основными отзывы с помощью вашего основного запроса.
  2. Используйте дополнительный запрос с 'parent__in' => array(<ID основного отзыва>) для загрузки дочерних комментариев отдельно.
  3. Комбинируйте основной и дочерний версии отображения в соответствии с вашими требованиями.

Применение SEO Оптимизации

Для увеличения видимости решения в поисковых системах, убедитесь, что вы используете ключевые слова в заголовках и тексте, такие как "отзывы Woocommerce", "дочерние комментарии WordPress", и "иерархия комментариев".

Заключение

Проблемы с иерархией комментариев в WordPress могут быть вызваны рядом факторов, таких как неверные аргументы запроса или неправильно проработанная иерархическая логика. Рассмотрите возможность применения предложенных подходов, чтобы наладить корректное отображение ответов на отзывы и обеспечить функциональность, которая эффективно отвечает требованиям пользователей.

Оцените материал
Добавить комментарий

Капча загружается...