Ciao,
Ho notato un problema sul nostro sito web con il plugin WP Discourse.
In pratica, dopo aver pubblicato un post del blog che viene pubblicato con successo sul forum Discourse, dopo circa 1 settimana, se apportiamo una piccola modifica al post e lo aggiorniamo, il plugin WP Discourse tenta di pubblicarlo nuovamente sul forum.
Ricevo quindi un’email “Discourse Publishing Failure” che indica che l’URL incorporato è già stato utilizzato.
Ho notato questo anche quando aggiorno post molto vecchi in WordPress, vengono visualizzati nella categoria predefinita “News” del forum Discourse, confondendo i lettori.
C’è qualche impostazione che mi sfugge per evitare questo?
Grazie mille!
Potresti provare a ricreare questo problema, ma prima di apportare la modifica (dopo una settimana, o qualunque sia il normale lasso di tempo) controlla lo stato del post di Discourse nella barra di utilità di WordPress sulla destra nella schermata di modifica del post. Dimmi cosa viene mostrato lì al momento in cui stai apportando la modifica, e poi se ottieni il comportamento che hai appena descritto dopo la modifica.
Ho provato ad aggiornare il post e si è verificato lo stesso errore. Ho anche ricevuto la stessa email sul fallimento.
L’ultimo errore dai log è:
[2024-05-13 18:02:53] publish.ERROR: create_post.post_error {"wp_title":"Nextcloud exhibiting at global events in May 2024","wp_author_id":"9","wp_post_id":209030,"response_message":"Embed url has already been taken","http_code":422}
Non dovrebbe esserci un’opzione nella pagina delle impostazioni che disabilita il tentativo di ripubblicazione quando il post è già su Discourse?
Ok, questo significa che la tua istanza di Wordpress non consente al plugin WP Discourse di salvare correttamente i campi meta dei post, molto probabilmente a causa di un altro plugin o tema sul tuo sito. Potresti condividere il download del log di WP Discourse? Includerà un elenco di plugin che potrebbero suggerire un colpevole.
Normalmente, il plugin salva i dettagli della pubblicazione dopo la prima pubblicazione. Questo non sta accadendo sul tuo sito. Questo è ciò che dobbiamo capire
Potresti avere alcuni plugin che sono la causa. Come prima misura, potresti abilitare questa impostazione nelle impostazioni “Pubblicazione” di WP Discourse.
Cambia il modo in cui il plugin salva i campi personalizzati e potrebbe influire sul comportamento nel tuo caso. Probabilmente non risolverà il problema, ma potrebbe darci maggiori informazioni. Una volta abilitata, prova a ricreare le stesse circostanze.
Dopo aver provato, passeremo a disabilitare i singoli plugin per vedere se riusciamo a isolare il problema. Hai per caso un sito di staging (ovvero un sito con i tuoi temi e plugin, ma senza dati reali)?
Aggiungerò anche più logging alla logica di pubblicazione nel plugin per aiutare a chiarire questa classe di problemi (ovvero, la memorizzazione dei metadati in Wordpress dopo la pubblicazione su Discourse). Ci vorrà un po’ di tempo, ma nel frattempo possiamo eseguire alcuni test come quelli sopra.
Ho abilitato quella impostazione ma il problema persiste.
In realtà utilizziamo un sito web di staging e la cosa divertente è che, anche se i plugin, i temi e i file sono esattamente gli stessi, si comporta in modo diverso - il che significa che dopo aver pubblicato un post di prova, questo viene pubblicato correttamente su Discourse, e poi se torno allo stesso post, non vedo l’errore “Embed url has already been taken” nelle impostazioni della barra laterale di Discourse. Invece lo vedo così:
Ci sono alcune piccole differenze tra i due. Probabilmente non sono la causa, ma vale la pena mantenere i tuoi siti di staging e di produzione identici, per eliminare la possibilità che questa sia la causa, sia qui che per altri problemi.
A parte questo, ti consiglio di controllare attentamente le impostazioni di WP Rocket (ad esempio, sono effettivamente le stesse tra i tuoi due siti). Sebbene funzioni bene per i suoi scopi specifici, WP Rocket è spesso la causa di problemi con i plugin di WordPress.
Hai ragione. Ho ricontrollato la funzione db_version() all’interno del tema e infatti ho ottenuto 5.5.5 come risultato. Ma nella pagina “Stato del sito” del backend vedo la versione 10.6.16-MariaDB, la stessa versione che mi hanno menzionato gli amministratori di sistema… Intendo dire che anche quella dovrebbe essere la versione che WP vede, giusto?