博客文章底部的开始讨论链接无法工作,链接到topic_url

我注意到我的 WordPress 博文底部的“开始讨论”链接已停止工作,现在仅链接到“topic_url”。

我不确定它是什么时候停止工作的。

我最近更新了我的 WordPress 主题。在此更新后,我发布了一篇博文,该博文似乎运行正常,并已发布到我的 Discourse 论坛。

请参阅下面的日志:

[2025-02-11 13:53:50] comment.ERROR: sync_comments.response_error {"message":"","discourse_topic_id":"89","wp_post_id":1521,"http_code":""} 

### 此文件包含在日志下载中 ### 

### 服务器 ### 

WordPress - 6.7.2
PHP - 8.0.30
MySQL - 10.11.11

### 活动插件 ### 

Avada Builder - 3.11.15
Avada Core - 5.11.15
WP-Discourse - 2.5.6

### WP Discourse 设置(已排除敏感信息) ### 

connection-logs - 0
display-subcategories - 1
allow-tags - 1
max-tags - 8
publish-as-unlisted - 0
full-post-content - 1
custom-excerpt-length - 55
add-featured-link - 1
auto-publish - 1
force-publish - 0
force-publish-max-age - 0
publish-failure-notice - 1
auto-track - 1
allowed_post_types - post
exclude_tags - 
hide-discourse-name-field - 1
discourse-username-editable - 0
direct-db-publication-flags - 0
verbose-publication-logs - 0
enable-discourse-comments - 1
comment-type - display-comments
ajax-load - 1
load-comment-css - 1
discourse-new-tab - 1
hide-wordpress-comments - 1
show-existing-comments - 0
max-comments - 8
min-replies - 1
min-score - 0
min-trust-level - 1
bypass-trust-level-score - 50
only-show-moderator-liked - 0
custom-datetime-format - 
cache-html - 0
clear-cached-comment-html - 0
verbose-comment-logs - 0
use-discourse-webhook - 1
webhook-match-old-topics - 0
use-discourse-user-webhook - 0
webhook-match-user-email - 0
verbose-webhook-logs - 1
verbose-sso-logs - 0
enable-sso - 0
auto-create-sso-user - 0
real-name-as-discourse-name - 0
force-avatar-update - 0
redirect-without-login - 0
sso-client-enabled - 1
sso-client-login-form-change - 1
sso-client-sync-by-email - 0
sso-client-sync-logout - 0
logs-enabled - 1

我的 WordPress/Discourse 链接:https://www.alphagamer.net/

@Pieces

所以这次特定的 Discourse 发布完全符合预期?然后随后的发布产生了这种意外的结果?

我不确定您说的“后续发布”是什么意思。

我昨天发布了一篇新的博客文章。发布这篇帖子似乎运行正常,并按预期发布到了我的 Discourse 论坛。我今天早上查看时,发现它下面的链接不再有效(我是偶然发现的)。我没有做任何特别的事情,比如更新或其他操作。

我确定它以前是有效的,我不确定它是什么时候开始失效的。

希望这有帮助。

明白了,感谢您的澄清。当您进入帖子的“编辑”视图时,您是否看到主题在“Discourse”侧边栏中正确链接?

@angus 是的,它显示已链接,并且链接似乎工作正常。

我明白了。这表明您的 WordPress 实例存在其他问题,因为在帖子编辑视图中设置该 URL 的数据与填充评论模板中的 topic_url 的数据是相同的数据。换句话说,数据是存在的,但出于某种原因未在评论模板中加载。

  1. 您的 PHP 日志中是否看到任何问题?如果您不确定日志在哪里,能否询问您的托管服务提供商?
  2. 您在其他帖子中也看到此问题吗?
  3. 您的浏览器控制台中是否看到任何错误?
  4. 您能否尝试在“WP Discourse > Comments”设置中禁用评论的 AJAX 加载,看看是否会有任何变化。

感谢您的回复@angus

  1. 我今晚需要查看一下,我现在无法访问PHP日志
  2. 我在所有帖子中都看到了这个问题
  3. 我只在浏览器控制台中看到与cookie(被阻止)相关的问题(我不认为这与此相关,但如果相关,我很乐意听取您的指导)
  4. 我关闭了Ajax,这似乎解决了链接问题,但是链接后面有很多额外的字符,这些字符是在我的WordPress博客文章中定义的(例如,www.mydomain/post/1变成了www.mydomain/post/1?_ahsdkhsdkhkh*lnnjasdfa)

您好 @angus,我发现我6个月前安装了一个子主题,以便在Discourse上将WordPress帖子发布为onebox。

我重新激活了主主题,问题仍然存在(如果我重新开启Ajax),所以我切换回了我的子主题并关闭了Ajax。

下面是我的子主题的functions.php代码,用于实现onebox功能。

<?php

function theme_enqueue_styles() {
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', [] );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles', 20 );

function avada_lang_setup() {
	$lang = get_stylesheet_directory() . '/languages';
	load_child_theme_textdomain( 'Avada', $lang );
}
add_action( 'after_setup_theme', 'avada_lang_setup' );

//在Discourse上将WordPress帖子发布为onebox
function wpdc_custom_publish_format_html( $input, $post_id ) {
	$permalink = get_the_permalink( $post_id );
	ob_start();
	echo $permalink;
	$output = ob_get_clean();

	return $output;
}
add_filter( 'discourse_publish_format_html', 'wpdc_custom_publish_format_html', 10, 2 );

好的,这个问题可能与您的 WordPress 上的脚本和/或 ajax 有关。您为什么要启用 ajax 加载?您是否担心将其保持关闭状态?

您好 Angus,

我认为在我安装插件时它就被启用了,如果没有,那也是我出于特定原因没有启用它。我只是觉得奇怪的是,它在没有明确原因的情况下停止工作(除了 WordPress 或主题更新)。

我现在将暂时关闭它。

该设置默认是禁用的。如果您的主题或网站存在任何 JavaScript 问题,可能会导致 AJAX 加载出现问题。

是的,我认为这就是解决方案。只有当您有特定原因时,才需要使用 AJAX 加载评论。

1 个赞

@angus

我今天注意到一件事。我被登出了 WordPress,并意识到如果我处于登出状态(即使关闭了 Ajax),链接也无法正常工作。

当我登录 WordPress 然后查看我的博客文章时,链接实际上是可以正常工作的。

您认为这可能是由什么原因引起的?

@Pieces,这和你网站有关,跟这个插件无关。听起来像是某些情况下,你的 WordPress 无法加载自定义字段。

你需要从 WordPress 方面调试这个问题。如果你有托管服务提供商或开发人员,可以向他们咨询这个问题。如果你最近对网站做了任何更改,可以尝试撤销更改,看看是否能解决问题。

@angus

将我的 WordPress 与 Discourse 断开连接的最佳流程是什么?是仅在 WordPress 中卸载(删除)插件(在 WordPress 的插件部分)并在 Discourse 中移除 API 密钥和 Webhook 吗?

我还有什么遗漏的吗?

谢谢,Pieces。

您只需要从 WordPress 中删除插件,但是的,您也可以做其他事情。

2 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.