我们有一个 WordPress 网站,我们使用 Discourse 来登录和评论 WordPress。
一切都运行正常,直到我们将 WordPress(一直运行在不同的服务器上)迁移到一个新的 IP 和不同的服务器。
从那时起,我们开始收到一些使用经典编辑器的文章,这些文章的设置如下图所示,即使在自动发布后也无法获得 Discourse 链接。
我总是必须手动进入一篇特定的文章,然后翻译文章,这样 Discourse 链接就会被创建,一切就绪。
有什么想法可以查找问题的原因吗?
有人在暗示问题可能出在哪里吗?
我在日志中找到的唯一关于错误的提及是这个,但我无法追踪到关于此消息的任何信息。
[2024-06-14 06:45:38] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"771554"}
[2024-06-14 06:45:43] publish.INFO: create_post.post_success {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981}
[2024-06-14 06:45:43] publish.INFO: create_post.body_valid {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981}
[2024-06-14 06:45:43] publish.INFO: create_post.after_publish {"post_id":771981,"remote_post_type":"create_post","discourse_post_id":"10416","discourse_topic_id":"5899","discourse_permalink":"https://komunita.svetandroida.cz/t/konec-ikonickeho-designu-galaxy-buds-3-dostanou-zcela-novy-vzhled/5899"}
[2024-06-14 06:45:43] webhook_topic.ERROR: update_topic_content.response_body_error
也许值得在 Meta 中搜索 update_topic_content.response_body_error ![]()
您有这样的主题示例吗?您日志中的示例表明 Discourse 主题已成功发布。这些行就是这个意思
[2024-06-14 06:45:43] publish.INFO: create_post.post_success {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981}
[2024-06-14 06:45:43] publish.INFO: create_post.body_valid {"wp_title":"Konec ikonického designu. Galaxy Buds 3 dostanou zcela nový vzhled","wp_author_id":"94147","wp_post_id":771981}
[2024-06-14 06:45:43] publish.INFO: create_post.after_publish {"post_id":771981,"remote_post_type":"create_post","discourse_post_id":"10416","discourse_topic_id":"5899","discourse_permalink":"https://komunita.svetandroida.cz/t/konec-ikonickeho-designu-galaxy-buds-3-dostanou-zcela-novy-vzhled/5899"}
您可以在这些日志的最后一行中看到成功发布的帖子的链接,即
"discourse_permalink":"https://komunita.svetandroida.cz/t/konec-ikonickeho-designu-galaxy-buds-3-dostanou-zcela-novy-vzhled/5899"
您在那之后立即看到的 webhook 错误表明 webhook 存在问题,但这并不一定表示发布本身有问题。
如果您能运行一个新的测试来重现该问题,并查看创建的 publish 日志,那将有助于我们了解您描述的问题。
另外,您能否分享一下您所说的“翻译文章”是什么意思?
我总是必须手动进入特定文章并翻译文章
您在这里具体做什么?
我怀疑您的 Discourse 安装可能缓存了 DNS 条目,并且正在使用您旧的 WP 安装的 IP 地址。尝试此操作的最快方法是重新启动容器并查看问题是否消失。
日志可能显示了我手动保存文章时的记录。抱歉,那是个拼写错误,应该是“手动保存”。
我也想到了DNS的问题,在将WordPress迁移到新服务器后立即运行了“./launcher rebuild app”,但也许从DNS的角度来看,那还太早了。我再试一次。
抱歉,只是想确认一下,您的意思是日志与您报告的自动发布问题无关吗?如果不是,您能否分享一个自动发布事件的日志?
我很难从日志中判断具体哪些行与问题相关。我已经对 DNS 做了一些更改,看看在 10 点下一篇文章发布时是否有帮助。
目前的问题是,当 WordPress 中的文章应该在特定时间自动发布时,指向 Discourse 社区的链接没有被创建。但是,当我随后手动编辑有问题的文章,并且只是保存而不做任何更改时,指向 Discourse 社区的链接就会被创建。
下次发布文章时,请查找时间戳相似的 publish.INFO 或 publish.ERROR 日志,并在下方分享您的发现。
目前,自动发布的文章 Vaše hodinky Amazfit zřejmě budou ještě lepší! Blíží se velká aktualizace 已经发布,但仍然没有链接到 Discourse
其 ID 为 772581
不幸的是,自上次沟通以来,我在日志中看到的唯一信息是这些。
[2024-06-21 07:09:01] connection.INFO: check_connection_status.successful_connection
[2024-06-21 07:09:01] connection.INFO: check_connection_status.valid_scopes
[2024-06-21 07:23:30] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772615"}
[2024-06-21 07:25:57] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772615"}
[2024-06-21 07:42:03] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772857"}
[2024-06-21 07:47:37] sso_client.INFO: auth_user.success {"user_id":129795}
[2024-06-21 07:48:05] sso_client.INFO: auth_user.success {"user_id":152766}
[2024-06-21 08:04:20] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772857"}
我在这里发送元日志。我无法从中读取任何内容
### This file is included in log downloads ###
### Server ###
WordPress - 6.5.4
PHP - 8.0.30
MySQL - 11.3.2
### Active Plugins ###
Advanced Google reCAPTCHA - 1.21
Allviews - 1.0.1
APS Arena Products - 2.5.5
Classic Editor - 1.6.3
Error Log Monitor - 1.7.8
FS Poster - 6.5.9
GTM4WP - A Google Tag Manager (GTM) plugin for WordPress - 1.20.2
Head, Footer and Post Injections - 3.2.8
Kontrola uploadovaných obrázků - 1.0
Limit Modified Date - 1.0.0
Lnk.Bio - 0.2.2
Lokální ukládání Gravatarů - 1.4
Lynt Custom Functions - 1.0.3
Pixwords Scenes Nápověda - 1.0.2
Rank Math SEO PRO - 3.0.64
Rank Math SEO with AI SEO Tools - 1.0.221
Redakční Tools - bez expirace - 2.0.12
SA Partner Products Feed - 1.0
Simple Local Avatars - 2.7.10
Speculative Loading - 1.3.1
Super Progressive Web Apps - 2.2.27
SZ Ad Manager API - 1.3.21
Webpushr Push Notifications - 4.36.0
WordPress Editorial Calendar - 3.8.5
WP-Appbox - 4.4.19
WP-Discourse - 2.5.3
WP-PostViews - 1.77
Wpify Performance Helper - master
WP Shortcode by MyThemeShop - 1.4.17
WP Shortcode by MyThemeShop extend by Svět Zítřka - 1.16
### WP Discourse Settings (Secrets Excluded) ###
connection-logs - 1
display-subcategories - 0
allow-tags - 0
max-tags - 5
publish-as-unlisted - 1
full-post-content - 0
custom-excerpt-length - 55
add-featured-link - 1
auto-publish - 1
force-publish - 1
force-publish-max-age - 0
publish-failure-notice - 1
auto-track - 1
allowed_post_types - post,page
exclude_tags -
hide-discourse-name-field - 0
discourse-username-editable - 0
direct-db-publication-flags - 0
verbose-publication-logs - 1
enable-discourse-comments - 1
comment-type - display-comments-link
ajax-load - 0
load-comment-css - 0
discourse-new-tab - 0
hide-wordpress-comments - 0
show-existing-comments - 1
max-comments - 0
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 - 1
clear-cached-comment-html - 0
verbose-comment-logs - 1
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 - 1
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 - 1
sso-client-disable-create-user - 0
sso-client-sync-logout - 1
logs-enabled - 1
好的,您的问题是关于计划帖子的自动发布的老问题。
最可能的原因是您网站上的其他插件也接入了您的计划系统,导致了其他人过去遇到的问题。查看您的插件列表,这似乎是一个可能的候选插件:
WordPress Editorial Calendar - 3.8.5
您能否尝试禁用它,看看问题是否仍然存在?
感谢您的提示。我已经填写了插件,我们将在我们的时间中午 12 点看看文章是否会发布。
但是,同样的插件设置也曾在之前的服务器上,当时一切都正常工作。
警告:未定义变量 $status_url 在 /.../www/wp-content/plugins/wp-discourse/lib/sync-discourse-topic.php 第 230 行
这应该是这段代码 $response = $this->discourse_request( $status_url, $args );
您100%确定设置是相同的吗?您是如何验证的?
这与 Webhook 有关,与您的问题无关。
是的,Discourse 插件设置在之前的服务器上是完全相同的,因为服务器和数据库数据都是物理迁移的。
所以不幸的是,问题不在于这个插件。它目前已被禁用,而刚刚发布的关于 Discourse 的文章没有链接到 Skvělý na cesty! Xiaomi vydalo maličký holicí strojek s nabíjením přes USB-C
日志中没有关于 ID 为 772245 的文章的任何信息。
但是,如果我手动打开问题文章并保存它。日志中会出现以下内容:
[2024-06-21 10:13:07] publish.INFO: create_post.post_success {"wp_title":"Skvělý na cesty! Xiaomi vydalo maličký holicí strojek s nabíjením přes USB-C","wp_author_id":"150202","wp_post_id":772245}
[2024-06-21 10:13:07] publish.INFO: create_post.body_valid {"wp_title":"Skvělý na cesty! Xiaomi vydalo maličký holicí strojek s nabíjením přes USB-C","wp_author_id":"150202","wp_post_id":772245}
[2024-06-21 10:13:07] publish.INFO: create_post.after_publish {"post_id":772245,"remote_post_type":"create_post","discourse_post_id":"10809","discourse_topic_id":"6138","discourse_permalink":"https://komunita.svetandroida.cz/t/skvely-na-cesty-xiaomi-vydalo-malicky-holici-strojek-s-nabijenim-pres-usb-c/6138"}
[2024-06-21 10:13:07] webhook_topic.ERROR: update_topic_content.response_body_error
[2024-06-21 10:13:07] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"772245"}
我们使用 WP CLI 运行 WP cron 是否可能存在问题?
是的,可能是这个问题。尝试在 WordPress UI 中安排一篇帖子,看看是否有效。
嗯,当我们插入一个普通的 cron,而不仅仅是 WP CLI 时,一切都按预期工作。
但我还是不明白为什么会这样。能否修改 WordPress 插件使其也兼容 WP CLI?
这会不会有帮助 @simon
您是如何调用 cron 作业的?请注意,当您调用 wp cron 时,该调用会受到任何全局 wp 参数的影响:Config – WP-CLI – WordPress.org wp 配置中的某些内容可能正在影响作业的处理方式。
这将调用所有计划的 WordPress cron 作业:
wp cron event run --due-now
如果您只是调用 wp cron event run publish_future_post,那么 WP Discourse 插件发布帖子所需的事件可能没有被触发。我认为这相当于 WordPress 内部处理计划帖子的方式:
wp cron event run publish_future_post future_to_publish publish_post transition_post_status
我还没有测试过。我正在设置一台新电脑,上面还没有 WordPress 网站。我很快就会完成。
