Кажется, вот в чём настоящая проблема: [2024-03-14 06:02:59] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13514,"http_code":403}
Это немного предположение, но этот плагин намекает, что ваш сайт WordPress находится за прокси:
Возможно, именно это вызывает ошибку 403 на стороне Discourse. Может быть, заголовки запроса настроены неверно? Это не та область, в которой я разбираюсь глубоко. Но вы можете попытаться подтвердить, является ли это проблемой, опубликовав пост из WordPress, оставив открытой страницу с логами ошибок вашего сайта Discourse.
Перейдите по этой ссылке, чтобы открыть страницу логов ошибок:
Спасибо! Я попробую, как только доберусь до этого.
Также я выяснил, что предыдущее кэширование, похоже, работало с плагинами GridPane Redis Object Cache и Nginx Helper. Возможно, мне даже не было необходимости устанавливать WP Rocket. Но деактивация любого из них тоже не помогла.
Кроме того, подсчёт комментариев сейчас не работает. Даже после очистки кэша количество комментариев в самой свежей статье остаётся равным 16 (в Discourse на данный момент 18 комментариев).
Как уже упоминалось ранее: опция AJAX активирована.
Да, любой из популярных плагинов кэширования должен работать. Просто установите один и попробуйте понять, как он функционирует. Для отладки проблем может быть полезно временно отключить кэширование. Так вы сможете убедиться, что проблема не связана с кэшем.
Счётчики комментариев устанавливаются функцией, которая возвращает эту ошибку:
Если эта ошибка продолжает появляться, счётчики комментариев не будут обновляться.
Установка плагина Proxy Real IP - 1.1 на сайте указывает на довольно сложную конфигурацию сервера. Возможно, стоит связаться с человеком, который настраивал сайт, и уточнить детали. Также стоит рассмотреть возможность переноса сайта на хостинг-провайдера, который возьмёт на себя решение подобных задач.
Я менее уверен, чем вчера, что проблема отобразится в журналах ошибок Discourse, но попробовать всё же стоит.
Он установлен, но не активирован на нашей немецкой странице, только на английской. Несколько недель назад я спрашивал у того, кто вёл страницу до меня, об этом плагине, и просто забыл отключить его на английской странице. Discourse подключён только к нашей немецкой странице, где плагин не активирован. Так что, полагаю, в данный момент он не выполняет никаких функций.
Я очень хотел бы лучше разбираться во всех этих вещах, так как я тоже иногда сталкиваюсь с тем, что WordPress работает очень медленно, и мне не до конца понятно, что происходит, просто читая об этом в интернете.
Для ясности: я говорю в основном о miasanrot.de / miasanrot.com не подключён к Discourse. Этот сайт работает с обычной системой комментариев WordPress.
Вы правы в своих ощущениях. Я опубликовал статью с открытым журналом ошибок, но она не появилась в логе ошибок Discourse.
Теперь ситуация ещё хуже: новая статья не отображается для пользователей, не авторизованных в WordPress. Страница как бы зависла.
Обновление 2: Теперь отображается правильное количество комментариев, и новая статья тоже появилась, но я не совсем понимаю, что изменилось. Одна догадка: я отключил два упомянутых ранее плагина кэширования и оставил активным только WP Rocket. Я попытался снова активировать эти два плагина, но ничего не изменилось. Затем я обновил статью в редакторе, и всё заработало. Один из двух плагинов (nginx helper) сообщает: «Очищает кэш fastcgi/proxy nginx или redis-кэш при редактировании/публикации поста. Также выполняет несколько других действий». Думаю, именно этот процесс помог отобразить страницу так, как должно быть.
Кажется, я могу отключить WP Rocket, но что-то в работе кэширования всё ещё не так, и у меня есть ощущение, что это может быть связано с проблемой Discourse.
Ваша основная проблема, безусловно, в чём-то другом, но зачем вы используете Nginx-helper? WP Rocket создаёт статические копии, и вам не нужен дополнительный кэш для fastcgi и Redis (конечно, бывают ситуации, когда даже при наличии WP Rocket могут потребоваться кэширование PHP-вызовов, но такие сайты обычно не используют WP Rocket, а гораздо более продвинутые инструменты).
Однако кэширование означает, что ничего динамического не происходит.
Это уже было установлено, когда я взял блог под свой контроль. Честно говоря, не знаю почему. Я просто знаю, что как только я отключаю его, страница не обновляется. Так что да, проблема может быть где-то в этом направлении.
Редактирование: Только что проверил. Отключил плагин — нет возможности обновить страницу. Включил плагин, обновил статью, и теперь отображается правильное количество комментариев.
Предположим наугад, что вам стоит заглянуть в wp-config.php и посмотреть, что он пытается сделать. Первые несколько строк могут дать подсказку.
Но ещё раз. Вам следует отключить все плагины и использовать одну из базовых тем, например 2020, а затем проверить, работает ли Discourse как положено. Если да, то проблема в одном из плагинов или в теме.
Сначала сделайте резервную копию базы данных. Отключение плагинов и темы может привести к неожиданным сюрпризам. WP-CLI стоит поискать в Google, если у вас его ещё нет.
Но если система всё ещё ведёт себя непредсказуемо… надеюсь, кто-то из гуру здесь сможет помочь.
В любом случае — стоит подумать о том, какие плагины вы используете и действительно ли они вам нужны.
Я планирую сделать это, как только у меня появится время, а трафик не будет слишком большим. В данный момент сложно найти день, когда мы сможем провести такой тест. Но я это сделаю.
Ещё одно наблюдение:
Когда я публикую статью напрямую, не публикуя её предварительно как приватную (я обычно так делаю, когда не хочу публиковать сразу), Discourse корректно связывает тему со статьёй. (Количество показанных комментариев всё ещё неверно, но сами комментарии отображаются под статьёй).
У меня возникла та же проблема. Комментарии перестали отображаться, и я вижу ошибки sync_comments. Точно не знаю, когда это началось, но я периодически обновляю WordPress и плагины.