Problem beim Veröffentlichen des Themas nach Umzug auf einen neuen Server

Wir haben eine WordPress-Seite, auf der wir Discourse zum Anmelden und Kommentieren von WordPress verwenden.
Alles funktionierte einwandfrei, bis wir WordPress (das immer auf einem anderen Server lief) auf eine neue IP und einen anderen Server verschoben haben.
Seitdem erhalten wir Artikel im klassischen Editor, die die unten gezeigten Einstellungen haben und keinen Discourse-Link erhalten, auch nachdem sie automatisch veröffentlicht wurden.
Ich muss immer manuell in einen bestimmten Artikel gehen und den Artikel nur übersetzen, dann wird der Discourse-Link erstellt und alles ist in Ordnung.
Haben Sie Ideen, wo die Ursache des Problems liegen könnte?

Gibt jemand Hinweise darauf, wo das Problem liegen könnte?
Die einzige Fehlermeldung, die ich im Protokoll gefunden habe, war diese, aber ich konnte diese Nachricht nicht weiterverfolgen.

[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

Wahrscheinlich lohnt es sich, in Meta nach update_topic_content.response_body_error zu suchen :wink:

Hallo @Petr_Mišák

Haben Sie ein Beispiel für ein solches Thema? Das Beispiel in Ihren Protokollen zeigt, dass das Discourse-Thema erfolgreich veröffentlicht wurde. Das bedeuten diese Zeilen:

[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"} 

Sie sehen einen Link zum erfolgreich veröffentlichten Thema in der letzten Zeile dieser Protokolle, d. h.

"discourse_permalink":"https://komunita.svetandroida.cz/t/konec-ikonickeho-designu-galaxy-buds-3-dostanou-zcela-novy-vzhled/5899"

Der Webhook-Fehler, den Sie unmittelbar danach sehen, deutet auf ein Problem mit dem Webhook hin, ist aber nicht unbedingt ein Hinweis auf ein Problem mit der Veröffentlichung an sich.

Wenn Sie einen neuen Test durchführen könnten, bei dem Sie das Problem reproduzieren, und sich die erstellten publish-Protokolle ansehen, erhalten wir Einblicke in das von Ihnen beschriebene Problem.

Könnten Sie außerdem mitteilen, was Sie mit „den Artikel übersetzen“ meinen?

Ich muss immer manuell in einen bestimmten Artikel gehen und den Artikel übersetzen
Was genau machen Sie hier?

Ich vermute, dass Ihre Discourse-Installation den DNS-Eintrag zwischengespeichert hat und die IP-Adresse Ihrer alten WP-Installation verwendet. Der schnellste Weg, dies zu versuchen, ist, den Container neu zu starten und zu sehen, ob das Problem verschwindet.

2 „Gefällt mir“

Das Log zeigt wahrscheinlich einen Eintrag aus dem Zustand, wenn ich den Artikel manuell speichere. Entschuldigung, es war ein Tippfehler, es hätte manuell speichern heißen sollen.

Ich habe auch an die DNS-Sache gedacht und “./launcher rebuild app” direkt nach dem Umzug von WordPress auf den neuen Server ausgeführt, aber vielleicht war es aus DNS-Sicht zu früh. Ich werde es dann noch einmal versuchen.

Entschuldigen Sie, nur um sicherzugehen, meinen Sie, dass das Protokoll nicht mit dem Problem der automatischen Veröffentlichung zusammenhängt, das Sie gemeldet haben? Wenn nicht, könnten Sie ein Protokoll eines automatischen Veröffentlichungsereignisses teilen?

Es ist für mich sehr schwierig, aus dem Logbook zu erkennen, ob bestimmte Zeilen mit dem Problem zusammenhängen oder nicht. Ich habe ein paar Änderungen am DNS vorgenommen und wir werden sehen, ob es geholfen hat, wenn der nächste Artikel um 10 Uhr erscheint.

Das aktuelle Problem ist, dass, wenn ein Artikel in WordPress zu einer bestimmten Zeit automatisch erscheinen soll, der Link zur Discourse-Community nicht erstellt wird. Wenn ich jedoch den problematischen Artikel anschließend manuell bearbeite und ihn ohne Änderungen speichere, wird der Link zur Discourse-Community erstellt.

Teilen Sie beim nächsten Mal, wenn ein Artikel veröffentlicht wird, hier die Protokolle mit publish.INFO oder publish.ERROR mit einem ähnlichen Zeitstempel mit.

1 „Gefällt mir“

Der automatisch geplante Artikel Vaše hodinky Amazfit zřejmě budou ještě lepší! Blíží se velká aktualizace ist derzeit nicht verfügbar und es gibt immer noch keinen Link zu Discourse

Der die ID 772581 hat

Leider sehe ich seit unserer letzten Kommunikation nur diese Informationen im Protokoll.

[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"}

Hier sende ich das Meta-Log. Ich konnte nichts darin lesen

### 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

Ok, Ihr Problem ist das alte Problem der automatischen Veröffentlichung mit geplanten Beiträgen.

Die wahrscheinlichste Ursache ist, dass eines Ihrer anderen Plugins auf Ihrer Website ebenfalls in Ihr Planungssystem eingreift und die Probleme verursacht, die andere in der Vergangenheit gesehen haben. Wenn ich mir Ihre Plugin-Liste ansehe, scheint dies ein möglicher Kandidat zu sein:

WordPress Editorial Calendar - 3.8.5

Könnten Sie versuchen, dieses zu deaktivieren und zu sehen, ob das Problem weiterhin besteht?

Vielen Dank für den Tipp. Ich habe das Plugin ausgefüllt und wir werden um 12 Uhr unserer Zeit sehen, ob der Artikel erscheint.

Aber die gleiche Plugin-Konfiguration war auch auf dem vorherigen Server, wo alles in Ordnung funktionierte.

Warnung: Undefinierte Variable $status_url in /.../www/wp-content/plugins/wp-discourse/lib/sync-discourse-topic.php in Zeile 230

Was dieser Codeausschnitt sein sollte: $response = $this->discourse_request( $status_url, $args );

Sind Sie sich zu 100 % sicher, dass die Einrichtungen identisch waren? Wie haben Sie das überprüft?

Dies betrifft Webhooks und hat nichts mit Ihrem Problem zu tun.

Ja, das Discourse-Plugin-Setup war auf dem vorherigen Server identisch, da sowohl Server- als auch DB-Daten physisch verschoben wurden.

Leider lag es nicht an diesem Plugin. Es ist derzeit deaktiviert und der Artikel, der gerade zu Discourse verlinkt wurde, wurde nicht gefunden: Skvělý na cesty! Xiaomi vydalo maličký holicí strojek s nabíjením přes USB-C

In den Protokollen gibt es nichts über den Artikel mit der ID 772245.

Wenn ich den Problemartikel jedoch manuell öffne und speichere, erscheint Folgendes im Protokoll:

[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"} 

Könnte es ein Problem sein, dass wir WP-Cron über WP-CLI ausführen?

Ja, das könnte es sein. Versuchen Sie, einen Beitrag über die WordPress-Oberfläche zu planen und sehen Sie, ob das funktioniert.

Hmm, als wir einen normalen Cronjob eingerichtet haben, nicht nur den WP CLI, funktioniert alles wie es soll.

Aber ich verstehe nicht, warum das so ist. Könnte das WordPress-Plugin so modifiziert werden, dass es auch mit WP CLI kompatibel ist?

Würde das @simon helfen?

Wie rufen Sie den Cron-Job auf? Beachten Sie, dass der Aufruf von wp cron von allen globalen wp-Parametern beeinflusst wird: Config – WP-CLI – WordPress.org. Es ist möglich, dass etwas in Ihrer wp-Konfiguration die Handhabung des Jobs beeinflusst.

Dies ruft alle geplanten WordPress-Cron-Jobs auf:

wp cron event run --due-now

Wenn Sie nur wp cron event run publish_future_post aufrufen, ist es möglich, dass Ereignisse, die vom WP Discourse-Plugin zum Veröffentlichen eines Beitrags benötigt werden, nicht ausgelöst werden. Ich glaube, dies entspricht der Art und Weise, wie WordPress intern mit geplanten Beiträgen umgeht:

wp cron event run publish_future_post future_to_publish publish_post transition_post_status

Ich habe dies nicht getestet. Ich richte gerade einen neuen Computer ein und habe noch keine WordPress-Site darauf. Das werde ich bald tun.

2 „Gefällt mir“