Scusa per il ritardo nella risposta. Monitoro la categoria Support > WordPress, ma sono abbastanza sicuro di non aver ricevuto una notifica per questo argomento.
Il modo più semplice per ottenere un messaggio di errore dettagliato è installare Query Monitor – WordPress plugin | WordPress.org English (Canada) e poi provare a pubblicare un post su Discourse. Il plugin WP Discourse in passato salvava tutti gli errori in un file di log, ma ha smesso di farlo perché ciò va contro le raccomandazioni di WordPress.
Ricevi un errore quando tenti di pubblicare qualsiasi post su Discourse, o il problema si verifica solo con un post specifico?
Sembra improbabile che l’aggiornamento a Discourse 2.6.0.beta1 sia la causa del problema. Sono state apportate modifiche al tuo sito WordPress intorno al momento in cui il plugin ha smesso di funzionare per te?
Sono sorpreso che il plugin Query Monitor non stia mostrando un errore. Mi aspetterei di vedere qualcosa del genere, ma con un messaggio di errore diverso:
Potrebbe essere utile generare una nuova chiave API dalla pagina Admin / API del tuo Discourse. Assicurati che la chiave sia una Global Key (consente tutte le azioni). Assicurati anche che l’Username di Pubblicazione sia impostato correttamente nella scheda delle impostazioni di Connessione WP Discourse. Dato che riesci a collegarti a topic Discourse esistenti, ma non a pubblicare nuovi topic su Discourse, sembra possibile che il problema sia legato alle autorizzazioni dell’API.
Un’ultima cosa da verificare è vedere quali valori vengono impostati per i campi personalizzati del post quando provi a pubblicare un post da WordPress su Discourse. Se attivi i campi personalizzati nell’editor, dovresti vedere qualcosa di simile a questo nella parte inferiore dell’editor:
Anche io, ma davvero non mostra nulla. Se lo facesse, sarebbe un errore 400 (ed è proprio quello che viene riportato in production.log), ma non è così.
Aggiornamento: dopo aver esaminato il codice, vedo che non ci sarà alcun errore; tutto viene gestito internamente. Se attivi i report via email (solo email, senza error_log()?), ti indica:
Motivo del fallimento:
È stato restituito un codice di risposta 400 da Discourse.
Richiesta non valida
ma è tutto.
L’ho già fatto, nessuna differenza. Era un’ultima risorsa: il timestamp “ultimo utilizzo” è stato aggiornato sulla chiave precedente quando ho provato a pubblicare, quindi sapevo che non era cambiato in qualche modo, ma ho pensato valesse la pena provare.
publish_post_category: 23
update_discourse_topic: 0
wpdc_publishing_error: Richiesta non valida
wpdc_unlisted_topic: 1
È tutto. Oh, e prima che tu lo chieda, succede lo stesso anche se non imposto “Pubblica come non elencato”, ma con la differenza attesa nei metadati del post.
Non sono sicuro di cosa possa causare la risposta 400. Potresti provare a installare Health Check & Troubleshooting – WordPress plugin | WordPress.org English (Canada) e verificare se segnala eventuali problemi sul tuo sito WordPress. Una volta attivato il plugin, verrà aggiunta una voce “Salute del sito” nella sezione Strumenti della tua dashboard di WordPress. Cliccando su quel link e passando alla scheda Stato, potrebbero essere visualizzati alcuni dettagli utili.
Il plugin Health Check ti consente anche di disabilitare temporaneamente i plugin solo per la tua sessione. Questo potrebbe essere utile per verificare se il problema è legato a un conflitto con un altro plugin: se hai installato sul tuo sito plugin relativi alla sicurezza, potrebbe valere la pena verificare se disattivarli risolve il problema.
Purtroppo sono arrivato a un vicolo cieco. Il plugin Health Check non ha suggerito nulla di utile (il che non sorprende), e tutto il resto funziona perfettamente.
Ho riscontrato l’errore CSRF quando stavo automatizzando l’invito di inviti, il che significa che hai commesso un errore nel tuo codice; tuttavia, in questo caso il plugin non è stato modificato, quindi la mia conclusione è che la versione 2.6.0.beta1 è difettosa.
So che questa non è una conclusione popolare, ma è l’unica che ho al momento.
Aggiornato per aggiungere: ho usato il plugin Health Check per disabilitare tutti gli altri plugin, ma non c’è stata alcuna differenza.