Регистрируете для него мета-поля "Лайки" и "Дизлайки"
Создаёте для неё какую-то таксономию, по типа категории. Это просто для простоты управления
Создаёте новый блок Gutenberg в котором, в параметрах указываете категории опросов которые нужно вывести
А в реализации блока, получаете параметры и обычным WP_Query выводите опросы.
Дополнительно добавляете JS для отслеживания кликов по лайкам/дизлайкам. Он отправляет запрос на сервер а тот обновляет мета-поле у нужного опроса.
По факту вы создаёте блок Gutenberg который имитирует работу обычного архива WP. А дальше этот блок можете встраивать в посты где нужно.
Или один блок на один опрос. Ну, идею вы поняли
agromov91, Не навешивать обработчик по какому то событию, а навешивать раньше/глобальнее/выше — скажем при старте программы.
И уже внутри каждого обработчика перед выполнением проверять нужно ли ему что-то делать. Скажем обработчик "СТОП" перед тем как что-то делать проверяет запущен ли таймер. Если нет — просто завершает работу.
Считайте это очень крутым, мультиязычным, кроссбраузерным, кроссплатформенным, адаптивным компонентом, который ничего не весит и отлично работает из коробки.
Возможно я как-то неправильно делаю данный функционал и есть способ лучше
Ну, чтобы вам сказали есть ли способ лучше, вам следовало бы описать не то что вы пытаетесь сделать а то чего вы хотите добиться. Другими словами в чем смысл указывать разные заголовки посту в зависимости от того где он отображается?
vahan21, Ну, для начала избавьтесь от глобальных переменных. Далее воспользуйтесь дебагером. Изучите поведение вашей программы. Определить в какой момент она даёт сбой и почему.