Прежде всего, хочу от всей души поблагодарить @angus за то, что вы остались со мной на протяжении всего этого процесса и предоставили столь вдумчивые рекомендации. Ваша поддержка очень много для меня значит, и я искренне ценю время и усилия, которые вы потратили на помощь в решении этой проблемы. Позвольте мне подробно рассказать о том, что я исследовал и пробовал, в надежде, что это может помочь другим, столкнувшимся с аналогичными трудностями.
Предпосылки и начальная настройка:
Изначально мы использовали тему Extol, где блок комментариев Discourse был добавлен непосредственно на страницу отдельной записи. Это работало идеально. Однако после переключения на тему Astra ситуация усложнилась. Поскольку в теме Astra есть определенные ограничения (например, невозможность легко редактировать шаблон записи по умолчанию), я добавил блок комментариев Discourse через хуки конструктора сайтов Astra и разместил его под записью на основе условия отображения.
Это работало гладко для большинства записей, но для трех конкретных записей секция комментариев Discourse появлялась дважды. Я не мог понять, почему это происходит только с этими записями, в то время как остальные отображались корректно. Эта аномалия заставила меня подумать, что, возможно, остались следы старой настройки Extol, но я не мог найти ничего конкретного.
Исследование проблемы:
- Сначала я проверил редактор записей, чтобы найти какие-либо настройки или блоки, которые могли быть вручную включены или отключены для комментариев Discourse. Удивительно, но ничего там не было — никаких лишних блоков, никаких отличных настроек.
- Затем я отключил хук конструктора сайтов Astra, чтобы посмотреть, уйдет ли лишний блок комментариев. Это не помогло; дублирующийся блок остался. Это говорило о том, что дублирование происходит вне настроек конструктора сайтов Astra.
- Далее я попробовал отключить опцию «Включить комментарии Discourse» в настройках плагина WP Discourse. Как вы и советовали, это убрало обе секции комментариев, что указывало на то, что обе они каким-то образом генерируются через эту интеграцию.
- После повторного включения я углубился в файлы темы. Я просмотрел файлы single.php, content-single.php и другие связанные шаблоны на наличие любого упоминания функции
comments_template();. К сожалению, я не нашел ничего, что явно вызывало бы эту функцию. Это меня озадачило. Если это проблема PHP-шаблона, почему я не могу найти её?
- Я также попробовал проверить наличие пользовательских шаблонов. Возможно, эти три записи использовали другой шаблон? Я не мог это подтвердить. Все указывало на настройку по умолчанию.
- Еще одна теория касалась синхронизации комментариев — возможно, когда кто-то оставлял комментарий на форуме Discourse, это вызывало появление еще одной секции комментариев под связанной записью блога. Это казалось правдоподобным, но я не мог найти настройку или документацию, которая напрямую связывала бы это поведение.
- В итоге я прибег к временному исправлению через CSS, чтобы скрыть дублирующуюся секцию комментариев:
Добавлен CSS в настройках темы WP (Дополнительный CSS):
#comments {
display: none !important;
}
Добавлен CSS в хук Astra:
#comments {
display: block !important;
}
Хотя это сработало, я согласен, что это не постоянное решение. Я бы предпочел устранить первопричину.
Мысли и теории:
- Я подозреваю, что это может быть более глубокая проблема с тем, как Astra обрабатывает хуки и блоки — возможно, какой-то конфликт или дублирование в способе встраивания комментариев Discourse.
- Другая возможность заключается в том, что есть скрытая настройка или оставшаяся конфигурация от старой темы Extol, которая все еще влияет на ситуацию.
- Или это может быть связано с тем, как Discourse синхронизируется с WordPress. Когда в форуме оставляют комментарий, это может запускать что-то внутри сайта WordPress, создавая лишнюю секцию.
Что я еще не пробовал:
- Обратиться в поддержку Astra: Как вы и предлагали, это может быть worthwhile. Они могут знать о подобных проблемах или предоставить информацию о том, как их тема обрабатывает комментарии и хуки.
- Отключить все плагины, кроме WP Discourse: Это может помочь изолировать проблему, если другой плагин вызывает такое поведение.
- Протестировать с совершенно новой записью: Создание записи с нуля и проверка, воспроизводится ли проблема, может что-то прояснить.
Следующие шаги:
На данный момент я думаю, что свяжусь со службой поддержки Astra и, возможно, проведу больше тестов с отключенными плагинами. Также я могу попробовать другой подход, используя дочернюю тему, и посмотреть, смогу ли я более точно управлять секцией комментариев Discourse вручную.
Снова, Angus, большое спасибо за вашу помощь и терпение. Ваши советы были бесценны, и хотя я еще не решил проблему, я чувствую, что стал ближе к пониманию того, что происходит. Если у кого-то еще есть мысли, идеи или опыт решения подобных проблем, я буду рад их услышать!
Я продолжу искать причину и обновлю эту тему, если найду что-то новое. Ура!