Il post non è stato correttamente pubblicato su Discourse – permalink mancante nella risposta API

Sto riscontrando un problema con il plugin Discourse per WordPress quando tento di pubblicare un post di WordPress su Discourse.

Descrizione del problema:

Quando creo un nuovo post sul mio sito WordPress e seleziono l’opzione “Pubblica su Discourse” nella scheda Discourse prima di pubblicare, il post viene pubblicato con successo su WordPress. Tuttavia, l’argomento Discourse non viene creato in quel momento.

Successivamente, se modifico lo stesso post e torno alla scheda Discourse, quindi faccio clic su “Nuovo argomento” e pubblico su Discourse, il post viene creato sul sito Discourse. Ma questo argomento Discourse non è collegato al post originale di WordPress. Non c’è alcuna associazione di permalink o metadati salvati nel post.

Risultati del debug:

Durante il debug, ho notato che la chiamata a:
/wp-json/wp-discourse/v1/publish-topic

restituisce la seguente risposta:

{
“publish_response”: “success”,
“permalink”: “”
}

Come puoi vedere, il campo “permalink” è vuoto. Questo sembra essere il motivo principale per cui l’argomento Discourse viene creato ma non collegato al post di WordPress (ovvero, il permalink non viene memorizzato nel postmeta, quindi il collegamento tra WP e Discourse è interrotto).

Potresti aiutarmi a indagare sul motivo per cui il permalink restituisce vuoto nella risposta dell’API? C’è una errata configurazione del plugin o un bug nel flusso di pubblicazione?

Fammi sapere se hai bisogno di log o ulteriori informazioni. Apprezzo il tuo aiuto!

Ciao @techops, potresti per favore condividere i log pertinenti da WP Discourse > Log in WordPress. Per favore, condividi anche il file meta da quella vista, se possibile.

1 Mi Piace

Ciao Angus,

Grazie per la rapida risposta.

Non ci sono log disponibili sotto WP Discourse > Log nella dashboard di WordPress, la visualizzazione dei log è attualmente vuota.

Tuttavia, ecco il file meta che hai richiesto: Discourse meta - Google Docs

Per favore, fammi sapere se c’è qualcos’altro che posso fornire per aiutare a risolvere questo problema.

Grazie!

Grazie @techops, ci sono alcune cose che vorrei fare.

Disabilita questa impostazione nelle impostazioni di pubblicazione

Invia notifica e-mail in caso di errore di pubblicazione

Assicurati che questa impostazione sia abilitata nelle impostazioni di pubblicazione

Log di pubblicazione dettagliati

Hai configurato diversi tipi di post per la pubblicazione

post,event,groups,collections,podcast

Con quale tipo di post stai riscontrando questo problema? Se non è post, potresti spiegare un po’ di più come è configurato quel tipo di post?

Ciao Angus,
Ho applicato le impostazioni suggerite:

  • Disabilitato: Invia notifica email in caso di errore di pubblicazione
  • Abilitato: Log di pubblicazione dettagliati

Sto usando solo il tipo di post post.

Dopo aver aggiornato le impostazioni, ho creato e pubblicato un nuovo post su Discourse. Ecco i log generati:

[2025-04-22 15:58:12] publish.INFO: create_post.post_success {"wp_title":"test post 4","wp_author_id":"221","wp_post_id":15068} 
[2025-04-22 15:58:12] publish.INFO: create_post.body_valid {"wp_title":"test post 4","wp_author_id":"221","wp_post_id":15068} 
[2025-04-22 15:58:12] publish.INFO: create_post.after_publish {"post_id":15068,"remote_post_type":"create_post","discourse_post_id":"","discourse_topic_id":"6910","discourse_permalink":""} 

Fammi sapere se hai bisogno di ulteriori informazioni o dettagli.

Grazie!

Grazie per aver condiviso questo. Quei log sembrano normali per me. Vedo che viene creato un argomento Discourse dopo la pubblicazione di un post in Wordpress. Potresti confermare esattamente qual è il problema? Per favore, descrivilo in questi termini:

  1. Componi un post in Wordpress.
  2. Dopo la pubblicazione del post, mi aspetto di vedere…

Tenta di non fare assunzioni tecniche in questa fase. Grazie!

Ciao Angus,
Ho composto un post in WordPress.
Dopo la pubblicazione del post, mi aspetto di vedere il seguente comportamento:

Quando la casella di controllo sotto ‘Pubblica su Discourse’ è selezionata, il comportamento corretto è che venga creato un post in Discourse e che questo sia collegato al post in WordPress.

Tuttavia, ciò che accade in realtà è che il post viene creato in Discourse, ma il collegamento viene immediatamente perso. Deve quindi essere ricreato manualmente.

Grazie!

Grazie, puoi anche confermare quanto segue:

  1. Quale compositore di post di Wordpress stai usando? Classic o Gutenberg? Questi post vengono creati in modo non standard (ad esempio, vedo che utilizzi “Gravity Forms Advanced Post Creation”)
  2. Puoi condividere un esempio di post di Wordpress e un argomento di Discourse in cui si verifica questo problema?
  3. Stai usando qualche plugin che modifica i campi meta di Wordpress (ad esempio, Advanced Custom Fields)?

Grazie per il follow-up. Ecco i dettagli:

  • Stiamo utilizzando l’editor Gutenberg per creare i post.
  • Non stiamo utilizzando alcun plugin per campi personalizzati come Advanced Custom Fields.
  • Ho registrato un video che replica il problema per la tua revisione. Puoi trovarlo qui.

Fammi sapere se hai bisogno di ulteriori informazioni o di ulteriori test.
Se può essere d’aiuto, posso anche fornire accesso temporaneo in modo che tu possa esplorare la configurazione direttamente.

Grazie!

Grazie per aver registrato il video. Sembra che tu stia utilizzando un flusso di lavoro di pubblicazione personalizzato per pubblicare i post.

Questo potrebbe essere collegato al problema.

È in grado di provare a pubblicare post senza questo flusso di lavoro personalizzato? Il modo in cui arriveremo al fondo di questo è un processo di eliminazione. È probabile che una delle tue personalizzazioni non sia interoperabile con il set di funzionalità di pubblicazione di WP Discourse.

Grazie per il suggerimento.
Ho testato la pubblicazione diretta dei post senza utilizzare il flusso di lavoro personalizzato, ma sfortunatamente non funziona ancora.

Ok, per favore continua in quella direzione. Una delle tue personalizzazioni sta probabilmente impedendo al plugin WP Discourse di salvare il post_id e il permalink quando un argomento viene pubblicato.

Grazie, Angus.

Ho identificato il colpevole, il plugin SmartCrawl SEO entra in conflitto con WP Discourse. Dopo aver disattivato SmartCrawl, i post vengono pubblicati su Discourse come previsto e si collegano correttamente agli articoli di WordPress.

1 Mi Piace

Ben fatto a trovare il colpevole. Penso che a questo punto potrebbe essere utile riferirlo al loro team di supporto, cioè “Il tuo plugin sembra impedire a un altro plugin di usare le API standard di WordPress…” e poi descrivere il problema. Puoi forse indirizzarli a questo argomento.