Messaggio di errore "embed url già in uso" anche dopo aver scollegato il post da Discourse

Ho un post WordPress esistente che in passato veniva pubblicato anche nel forum.
Ad un certo punto, ogni volta che aggiorno il post cliccando sul link salva, ricevo un’email con il seguente messaggio di errore:

Errore nella pubblicazione su Discourse

Un post non è riuscito a essere pubblicato su Discourse dal tuo sito ...

...

Motivo dell'errore:
È stata restituita una risposta errata da Discourse.
Embed url wird bereits verwendet (traduce in "è già in uso")

Ho scollegato il post da Discourse. Ho anche eliminato il post nel forum. Eppure l’errore continua a comparire ogni volta che salvo il post. Inoltre, quando provo a pubblicare il post come nuovo argomento, compare lo stesso errore.

C’era un bug nel plugin che causava un tentativo di ripubblicare i post su Discourse dopo che erano stati scollegati su WordPress, quando l’impostazione Auto Publish è abilitata e i post vengono pubblicati con l’Editor a blocchi. La pubblicazione del post su Discourse falliva perché l’URL di incorporamento era già in uso su Discourse. Ho risolto questo problema ieri, ma la correzione si applica solo ai post appena scollegati. Troverò una soluzione per risolvere il problema anche per i post scollegati in passato.

Quando i post vengono scollegati, il plugin non rimuove l’embed_url del topic su Discourse. Ciò significa che se un post viene scollegato e poi ripubblicato su Discourse, la pubblicazione fallirà con l’errore Embed url is already being used. Correggerò questo problema.

Se hai eliminato il topic associato su Discourse, dovrebbe essere possibile ripubblicare il post su Discourse senza errori. Verificherò che l’embed_url venga rimosso su Discourse quando un topic viene eliminato.

Agiornerò il plugin entro la fine della settimana o nel weekend. Questo aggiornamento dovrebbe risolvere i problemi che stai riscontrando con i post scollegati.

Grazie per la risposta dettagliata! C’è qualche soluzione manuale provvisoria per il momento?

Per evitare di ricevere il messaggio di errore quando un post che hai scollegato da Discourse viene aggiornato su WordPress, aggiungi un campo personalizzato al post con il nome wpdc_auto_publish_overridden e impostane il valore a 1.

Se i campi personalizzati non sono ancora abilitati nell’Editor a blocchi:

  1. Clicca sulle impostazioni dell’editor a blocchi (tre puntini) nell’angolo in alto a destra della pagina e seleziona “Opzioni”.
  2. Seleziona “Campi personalizzati” nella sezione “Pannelli avanzati”.

Ho appena caricato WP Discourse versione 2.0.4 nel repository di WordPress. Risolverà il problema relativo ai post scollegati da Discourse quando il sito utilizzava una versione del plugin inferiore a 2.0.3. Per questi post, al primo aggiornamento del post scollegato, vedrete il messaggio di errore “Embed url has already been taken”. Dopo l’aggiornamento iniziale, non vedrete più il messaggio di errore (né riceverete l’email di errore di pubblicazione). Non è una soluzione perfetta, ma è il modo migliore per risolvere tale problema.

Se tentate di pubblicare un post su Discourse quando esiste già un argomento Discourse che utilizza il suo URL di incorporamento, riceverete un errore. Se eliminate l’argomento su Discourse che utilizza l’URL di incorporamento, dovreste essere in grado di ripubblicare l’argomento. Discourse impiega del tempo per eliminare l’Embed Topic associato al post di WordPress. Devo ancora confermare cosa determina la durata di questo periodo. Fatemi sapere se continuate ad avere problemi con questo.

Idealmente, quando un post di WordPress viene scollegato da un argomento Discourse, l’embed_url associato al post verrebbe eliminato su Discourse. Purtroppo, al momento non è possibile rimuovere l’embed_url di un argomento tramite l’API di Discourse. Potrebbe essere possibile realizzare questa funzionalità in futuro. Un cambiamento più piccolo che sarebbe utile per il plugin WP Discourse sarebbe far sì che Discourse restituisca l’topic_id quando restituisce il messaggio di errore “Embed url has already been taken”. In questo modo, il plugin WP Discourse potrebbe informare gli utenti su quale argomento su Discourse sta causando il problema.