Wp-discourse-shortcodes plugin

Думаю, я разобрался — [discourse_latest] сам по себе не является корректным шорткодом, мне показалось, что я видел его где-то. Я заменил его на [discourse_topics source=“latest”] и всё заработало.

Смущённая улыбка
Рэй

P.S. Как можно изменить форматирование даты в последних темах, отображаемых через шорткод, @simon? Сейчас она показывается как 2020-10-20, а я бы хотел видеть что-то вроде Oct-20 или подобное.

1 лайк

Я почти уверен, что плагин шорткодов использует формат даты и времени, установленный на вкладке «Настройки комментариев WP Discourse». Нажмите на ссылку в описании этого параметра, чтобы увидеть доступные варианты форматирования дат.

Это сработало, спасибо!

Рэй

1 лайк

Не могли бы вы по умолчанию добавлять имена пользователей в качестве заголовков аватаров или в качестве опции шорткода, а также, возможно, добавить ещё одну опцию для отключения отображения имён (например, display_usernames = “false”)? Временное решение: если кому-то это нужно, перейдите в wp-discourse-shortcodes-master/lib/discourse-topic-formatter.php и замените

$avatar_image = '<img class="wpds-latest-avatar" src="' . esc_url_raw( $poster_avatar_url ) . '">';

на

$avatar_image = '<img class="wpds-latest-avatar" title="'. esc_html( $poster_username ) . '" src="' . esc_url_raw( $poster_avatar_url ) . '">';

Отличный плагин. Спасибо!

Также было бы полезно добавить в качестве опции внутри вашего шорткода ссылку на категории (подробнее здесь).

Этот плагин всё ещё поддерживается? :smiley:

Да, мы (Communiteq) теперь поддерживаем его.

2 лайка

Кажется, не происходит «обновление» последних постов из Discourse.

Должно быть, я что-то делаю не так.

[discourse_topics source=“latest”] — это шорткод, который я использую.

Он извлек три темы из Discourse, но с тех пор я добавил новые темы, чтобы проверить, появятся ли они на моём сайте WordPress.

Они не появились.

Попробовал событие Ajax, но новые посты всё равно не подтягиваются :sweat:

Возможно ли получить темы только из определённой категории или подкатегории?

Спасибо за управление этим плагином. Мне нужно отображать активность форума на главном сайте WordPress.

У меня много тем на экземпляре Discourse, но шорткод [discourse_topics] возвращает пустой результат, как будто данных нет — Screenshot - b9160f714e42b2677b01bcf00c041634 - Gyazo

Кроме того, на фронтенде возникает следующая ошибка: Warning: Invalid argument supplied for foreach() в /home/customer/www/web.com/public_html/wp-content/plugins/wp-discourse-shortcodes-master/lib/discourse-topic-formatter.php на строке 94.

Если это поможет, RSS-канал моего сообщества работает отлично и содержит все темы. Что я мог упустить? Буду благодарен за помощь :pray:

Редакция и обновление: Похоже, переменная topics не заполняется в коде.

Строка 94: foreach ( $topics as $topic ) {
.....
}

// Определение переменной темы
if ( $use_plugin_formatting ) {
			$topics            = $discourse_topics['topic_list']['topics'];
}

Я разобрался. Чекбокс для отображения приватных постов не был включен. Кроме того, ошибку можно исправить, добавив проверку на значение null для переменной $topics. Я сделал это, и всё заработало как надо.

1 лайк

Если бы только PHP foreach не жаловался на пустые массивы, моя жизнь была бы намного лучше.
Мы добавим эту проверку в следующей версии.

1 лайк

Какой вариант позволяет обновить в Discourse аватар пользователя из его последнего профиля в WordPress?

Использование вебхука для синхронизации данных пользователей с Discourse — я создал его, и он работает между двумя сайтами, но не обновляет аватар профиля пользователя в Discourse.

@RGJ

Привет, Ричард,

Я использую последнюю версию этого плагина, но, к сожалению, он не работает.

У меня та же проблема, что и у Ника:

Похоже, не обновляется с последними постами из Discourse.

Должно быть, я что-то делаю не так.

[discourse_topics source=latest] — это шорткод, который я использую.

Он извлек три темы из Discourse, но с тех пор я добавил больше тем, чтобы проверить, появятся ли они на моём сайте WordPress.

Они не появились.

Попробовал событие Ajax, но новые посты всё равно не подтягиваются :sweat:


Не могли бы вы помочь в этом вопросе, пожалуйста?

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

3 лайка

Спасибо, очень признателен.

Обратите внимание, что моя проблема была решена путём очистки кэша объектов моего основного веб-сайта.

2 лайка

Вы настроили параметр «Включить веб-хук Discourse»?

Я тщательно протестировал плагин, исправил несколько ошибок, две из которых были связаны с неудачным обновлением кэша вывода шорткодов, обновил файл README и выкатил новую версию.

Однако я всё ещё вижу одну серьёзную проблему: шорткоды [discourse_topics] с разными категориями работают некорректно. Исправление этого потребует значительных усилий. Я займусь этим сразу после своего предстоящего отпуска.

4 лайка

В данном случае я использую только один шорткод, поэтому не уверен, что у меня должны возникать такие проблемы. Я хотел бы отображать приватные темы, но только из определённых категорий (которые объединены под одной родительской категорией). Ни ID родительской категории (например, [discourse_topics category="5" ... ]), ни ID подкатегорий (например, [discourse_topics category="6,7,8,9,17" ... ]) не позволяют ограничить результаты этими категориями (показываются дополнительные приватные темы, которые не должны отображаться). Не подскажете, является ли это ожидаемым поведением на данный момент (которое вы планируете исправить)?

Несколько идентификаторов категорий не поддерживаются.

Это действительно не является ожидаемым поведением.

Быстрое решение может заключаться в снятии галочки «Отображать приватные темы» на вкладке настроек. Это не решит проблему выбора неправильной категории(ий), но предотвратит появление приватных тем в WordPress.

Пожалуйста, проверьте логи на стороне Discourse и найдите там вызов API. Вызов API происходит при редактировании и изменении страницы на стороне WordPress.