Wp-discourse-shortcodes 插件

我想我已经解决了——[discourse_latest] 本身并不是一个有效的短代码,我可能是在某处看错了。我把它改成了 [discourse_topics source=“latest”],结果就成功了。

(尴尬地笑)
Ray

附:@simon,我该如何更改短代码中显示的最新主题的日期格式?目前显示为 2020-10-20,我更希望它显示为 Oct-20 或类似格式。

1 个赞

我相当确定短代码插件使用的是“WP Discourse 评论”选项卡中设置的日期时间格式。点击该设置描述中的链接,即可查看可用的日期格式选项。

这招管用,谢谢!

Ray

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 ) . '">';

非常棒的插件,谢谢!

另外,将分类链接(更多信息)作为短代码中的一个选项也会很有用。

这个插件还在维护吗?:blush:

是的,我们(Communiteq)现在负责维护它。

2 个赞

似乎无法“刷新”Discourse 的最新帖子。

我一定是哪里操作有误,

[discourse_topics source=“latest”] 这是我使用的短代码。

它已经拉取了三个 Discourse 主题,但之后我又添加了一些主题,想看看能否同步到我的 WordPress 站点。

但并没有同步过来。

尝试了 Ajax 事件,但仍然无法拉取新帖子 :sweat:

能否仅从特定分类或子分类中获取主题?

感谢您管理这个插件。我需要在 WordPress 的主网站上显示论坛活动。

我的 Discourse 实例中有很多主题,但 [discourse_topics] 短代码返回空白,仿佛没有数据——Screenshot - b9160f714e42b2677b01bcf00c041634 - Gyazo

并且在前端抛出以下错误:警告:在 /home/customer/www/web.com/public_html/wp-content/plugins/wp-discourse-shortcodes-master/lib/discourse-topic-formatter.php 的第 94 行,foreach() 收到了无效参数。

如果这对任何人有帮助,我的社区 RSS 源工作正常,并列出了所有主题。我可能漏掉了什么?感谢帮助 :pray:

编辑和更新:看起来代码中的 topics 变量没有被填充。

第 94 行:foreach ( $topics as $topic ) {
.....
}

// 主题变量定义
if ( $use_plugin_formatting ) {
		$topics            = $discourse_topics['topic_list']['topics'];
}

我已经解决了。显示私密帖子的复选框未启用。除此之外,该错误可以通过为 $topics 变量添加空值条件来解决。我这样做了,问题就顺利解决了。

1 个赞

要是 PHP 的 foreach 不抱怨空数组,我的生活就会美好得多。我们将在下一个版本中添加此检查。

1 个赞

哪个选项可以更新 Discourse 中用户的最新 WordPress 头像?

使用 Webhook 同步用户数据到 Discourse。——我已创建该 Webhook 并在两个站点间正常工作,但无法更新 Discourse 用户的头像。

@RGJ

你好 Richard,

我正在使用此插件的最新版本,但不幸的是它不起作用。

我遇到了和 Nick 同样的问题:

似乎无法“刷新”来自 Discourse 的最新帖子。

一定是我做错了什么,

[discourse_topics source=“latest”] 我正在使用这个短代码。

它从 Discourse 拉取了三个主题,但从那以后,我添加了更多主题,想看看它们是否会显示在我的 WordPress 网站上。

它们没有显示。

尝试了 Ajax 事件,但似乎仍然无法拉取新帖子 :sweat:


您能否在此提供帮助?

这个终于排到我的列表最前面了,我明天会着手处理这个插件,修复一些bug并回答您的问题。抱歉耽搁了这么久。

3 个赞

谢谢,非常感谢。
请注意,我的问题已通过刷新主网站的对象缓存得到解决。

2 个赞

您是否配置了“启用 Discourse Webhook”设置?

我已经彻底测试了该插件,修复了几个错误,其中两个与未能更新短代码输出的缓存有关,更新了自述文件并推送了一个新版本。

我仍然看到一个主要问题,即具有不同类别的 [discourse_topics] 短代码无法正常工作。这将需要大量工作来修复。我将在休假后第一时间处理这个问题。

4 个赞

在此实例中,我只使用了一个短代码,因此我不确定是否应该遇到问题。我想显示私有主题,但仅限于某些类别(这些类别都归于一个父类别下)。无论是使用单个父类别 ID(例如 [discourse_topics category=\"5\" ... ])还是每个子类别 ID(例如 [discourse_topics category=\"6,7,8,9,17\" ... ])似乎都无法将结果限制在这些类别内(会显示额外的、不应显示的私有主题)。我想知道这是否是当前预期的行为(您是否会解决)?

不支持多个类别 ID。

这确实不是预期行为。

一个快速的解决方法是禁用设置选项卡中的“显示私有主题”复选框。这并不能解决选择了错误类别的问题,但可以阻止私有主题出现在 WordPress 中。

您能否检查一下 Discourse 方面的日志,并搜索正在进行的 API 调用?当您在 WordPress 端编辑和更改页面时,API 调用将被触发。