Как отладить запись в WP с неверным количеством комментариев

Я только что заметил, что на нашем сайте WordPress пост отображался без комментариев, хотя я точно знаю, что в Discourse один комментарий был. Я оставил ещё один комментарий по этой теме, но он тоже не появился. При этом другие посты получают комментарии без проблем. В этом посте я не вижу ничего странного или особенного.

Есть ли что-то, что я могу сделать для отладки этой проблемы?

Убедитесь, что комментарии к посту соответствуют критериям, установленным на вкладке «Настройки комментариев» плагина. Если кажется, что комментарии к постам должны импортироваться в WordPress, вы можете отладить проблему, включив опцию экрана «Пользовательские поля» для постов на вашем сайте:

После этого в нижней части экрана редактирования появится список метаданных поста. Убедитесь, что поля discourse_permalink и discourse_topic_id соответствуют связанной теме Discourse. Если этих полей нет, возможно, пост был отвязан от Discourse. Вы можете снова связать отвязанный пост, выбрав радиокнопку «Связать с существующей темой» в мета-боксе Discourse.

Спасибо,

Становится ещё страннее. Я только что наблюдал, как появился комментарий к совершенно новой записи. На главной странице нашего сайта WP сразу же отобразился один комментарий к этой записи. Пока всё выглядит хорошо. Затем, перейдя по ссылке на запись, я увидел вверху информацию о том, что есть один комментарий.

Я нажал на количество комментариев, чтобы прокрутить страницу к соответствующему месту, но вместо надписи «Присоединиться к обсуждению» там было написано «Начать обсуждение». (Мы на самом деле не отображаем сами комментарии, только их количество и ссылку на наш экземпляр Discourse.) Я подумал, что обновление страницы исправит это, но вместо этого при обновлении страницы надпись снова стала гласить, что комментариев ноль. И на главной странице количество комментариев также вернулось к нулю.

Я проверил поля discourse_topic_id и discourse_permalink — они оба правильные. Однако остальные поля Discourse для меня не совсем понятны.

discourse_comments_count показывает «0».

Вот что содержится в discourse_comments_raw:

{"id":1399,"posts_count":2,"filtered_posts_count":0,"posts":[],"participants":[{"id":11,"username":"nathan","name":"Nathan ","avatar_template":"https://www.ourdiscourse.com/user_avatar/www.ourdiscourse.com/nathan/{size}/182_2.png"},{"id":103,"username":"Zak","name":"Zak","avatar_template":"https://www.ourdiscourse.com/user_avatar/www.ourdiscourse.com/zak/{size}/652_2.png"}]}

Кроме того, я не могу понять, что должно означать поле discourse_post_id. Но, судя по содержащемуся в нём четырёхзначному числу, я ожидал, что это будет идентификатор записи WP, но это не так. Что это должно быть?

Если ваша тема на Discourse публичная, не могли бы вы отправить мне ссылку на неё в личное сообщение?

У вас включена опция «WP Discourse Publish as Unlisted Topics»? Разница между posts_count и filtered_posts_count в метаданных discourse_comments_raw указывает на то, что в теме есть два небольших поста с действиями. В функции обновления веб-хука WP Discourse есть проблема, когда возникает расхождение между posts_count и filtered_posts_count. Я займусь этим вопросом, но, по моему мнению, это не связано с вашей проблемой, когда пост не получает комментариев.

Что касается проблемы с постом, который не получает комментариев: вы имеете в виду, что ссылка на соответствующую тему в Discourse не отображается, или проблема в том, что ссылка показывает «начать обсуждение» вместо «присоединиться к обсуждению»?

Да.

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

О, и чтобы ответить на ваш вопрос…

Нет.

Какое правильное значение у поля “wpdc_sync_post_comments”?

Я всё ещё борюсь с этой проблемой.

Я только что зашёл на тему, в которой был один пост. Количество комментариев в фронтенде WP должно было быть «1», но отображалось 0. Значение wpdc_sync_post_comments было «0». Я предположил, что это флаг типа True/False, и что его следует установить в 1, поэтому я изменил его и сохранил пост. После обновления фронтенда WP изменений не произошло, поэтому я оставил новый пост в теме Discourse и сразу же обновил страницу WP. Количество комментариев корректно увеличилось до «2». Я снова немедленно обновил страницу, и оно снова упало до «0»! В экране редактирования я обнаружил, что wpdc_sync_post_comments снова установлен в 0, и

discourse_comments_count == 0
discourse_comments_raw ===
{"id":1451,"posts_count":3,"filtered_posts_count":1,"posts":[],"participants":[ (сокращено)

В другом посте значения следующие:
discourse_comments_count == 3
discourse_comments_raw ===
{"id":1447,"posts_count":17,"filtered_posts_count":4,"posts":[],"participants": (сокращено)

Спасибо за детали!

Когда поле установлено в 1, комментарии будут синхронизированы при следующей загрузке страницы. После синхронизации комментариев значение wpdc_sync_post_comments снова станет 0.

Судя по метаданным, которые вы опубликовали, похоже, что плагин вычитает 1 из количества комментариев, хотя не должен этого делать. Последние пару дней я был в поездке. Завтра, вернувшись к работе, я внимательно разберусь с этим.