Как синхронизировать количество просмотров темы обратно в Discourse?

Всем привет,

Я создал VUE SPA с использованием API Discourse для интеграции с WordPress и хотел бы узнать, есть ли способ отправить POST-запрос для обновления количества просмотров темы в Discourse, когда пользователь открывает тему на WordPress?

Привет, Алекс,

Мне интересно узнать об этом немного больше. Есть ли что-то, чем вы можете поделиться?

Просмотр постов, полученных плагином WP Discourse, не создаёт новых просмотров в Discourse. Однако, если вы используете стандартный endpoint show в topics_controller и передадите проверку, выделенную ниже, «просмотр» будет зафиксирован. Обратите внимание, что использование API-ключа означает наличие current_user.

Примечание

Одна важная деталь, на которую стоит обратить внимание при чтении этого кода: TopicView — это не то, что вам нужно (это модель, обрабатывающая данные, сериализуемые при отображении темы). Фактическая модель «просмотра темы» — это TopicViewItem.

Привет, @angus,

Спасибо за ваши комментарии. Я изучу кодовую базу для представлений тем.

Что касается SPA-приложения:

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

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

С использованием SPA извлечение и отображение данных стали бы намного быстрее и гибче. Оно показывает пагинированный список последних тем и боковую панель с популярными темами, включая возможности фильтрации и поиска.

Изначально в представлении деталей темы я планировал также обрабатывать отображение ответов/комментариев. По какой-то причине встроенные ответы показывали имена пользователей вместо полных имен.

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

Еще одной проблемой было SEO. Мне удалось решить её с помощью хука wp_head в WordPress.