Migrazione da wp-discourse-embed a WP Discourse – vecchi post non visibili

Per quasi cinque anni, il mio blog ha funzionato con wp-discourse-embed di @techAPJ. Ecco un esempio di post
Soya Chunks Masala Dry Recipe | A Little Bit of Spice e del corrispondente post sul forum: Soya Chunks Masala Dry - blog - comments
Sono riuscito a migrare e configurare WP Discourse di @angus:

Ma ora, i vecchi post del forum non appaiono come commenti sui post del blog. Il post del blog sopra è un esempio.
Suppongo che sia necessaria una qualche mappatura.
Come posso integrare questo?
Ecco come appare il mio log:

E l’ultimo:

[2024-04-03 01:42:27] webhook_topic.ERROR: update_topic_content.webhook_verification_error [“message”,“Discourse Webhook Request Error: signatures did not match.”]

Log grezzi qui.

1 Mi Piace

Ciao,

Riguardo a:

Questo errore significa che il valore dell’opzione Webhook Secret Key in WP-Discourse non corrisponde alla password definita nel tuo webhook di Discourse. Puoi controllare?

@simon mi correggerà se sbaglio, ma sì, un post WP deve essere sincronizzato con un topic di Discourse. Per i topic esistenti, dovresti avere l’opzione per collegarti a un topic di Discourse esistente:

.
Una volta sincronizzati, i commenti dovrebbero essere recuperati.

Non sono sicuro se ci sia un modo migliore; spero che qualcuno possa fornire maggiori approfondimenti.

4 Mi Piace

Hai ragione su entrambi i problemi.

@Jane_Jojo, prova a collegare un argomento Discourse esistente al suo post WordPress corrispondente utilizzando il metodo che @Arkshine ha dimostrato. Tieni presente che l’interfaccia utente è leggermente diversa a seconda che tu stia utilizzando l’editor classico di WordPress o il nuovo editor a blocchi.

Se il collegamento dell’argomento Discourse a un post WordPress funziona, la prossima cosa da capire sarà come collegare tutti i tuoi argomenti e post esistenti. Quanti vecchi post hai? Se sono troppi post da collegare manualmente a Discourse, potrebbe esserci un modo per automatizzare il processo.

2 Mi Piace

Grazie.

Quindi ho fatto questo.

e ottengo un 200 quando faccio un ping. Quindi è chiaro.

Poi faccio questo:


Ma il post non lo riflette

Mi manca qualcos’altro? I log non sembrano avere alcun aggiornamento.

Aggiornamento:
Quando faccio il ping dal webhook di discourse

Ottengo questo sul lato log

[2024-04-03 21:38:14] webhook_topic.ERROR: update_topic_content.response_body_error

Il tuo WordPress utilizza un plugin di cache?

Potrebbe essere necessario abilitare questa impostazione:

Inoltre, se non è già abilitato, abilitare il debug sui commenti potrebbe aiutare:

image

Il messaggio di errore che stai vedendo verrà generato se fai “ping” al webhook. Sul lato WordPress, il codice si aspetta che ci sia un oggetto post nel webhook inviato da Discourse. Il post non sarà nel payload se fai semplicemente clic sul pulsante “ping”. Prova a lasciare un commento su un argomento di Discourse collegato a Discourse e vedi se ottieni ancora un errore.

Per quanto riguarda la visualizzazione dei commenti di Discourse sul tuo sito WordPress:

  • assicurati che i commenti siano abilitati su WordPress per i post che pubblichi su Discourse
  • assicurati che l’opzione “Abilita commenti Discourse” sia abilitata:

Se in precedenza non avevi abilitato i commenti sul tuo sito WordPress, potresti non volerli abilitare ora per i post non ancora collegati a Discourse. Per evitare che il modulo di commento di WordPress venga visualizzato per tali post, puoi abilitare i commenti a livello di sito, quindi selezionare l’impostazione “Rimuovi modello di commenti WordPress” dalla pagina Opzioni commenti WP Discourse:

Facci sapere se riscontri ancora problemi.

1 Mi Piace

Abilitato entrambi. Nessuna fortuna.


Pagina aggiornata e i log non mostrano nulla

Quando faccio una visualizzazione sorgente della pagina, vedo un sacco di riferimenti a discourse nell’html. Quindi sta provando qualcosa…

Queste sono state le impostazioni della mia sezione commenti per molto tempo.

Puoi verificare che i commenti siano abilitati per un post che hai collegato a Discourse? A volte l’opzione “Discussione” non viene visualizzata nella pagina di modifica. Potrebbe essere necessario selezionarla dal menu “Opzioni schermo” per vederla:

Sì, questo è stato abilitato :frowning:

Hmm, non vedo nulla nella pagina che indichi che il template dei commenti venga caricato. Il riferimento a discourse-embed-js nel tuo screenshot non proviene dal plugin WP Discourse. Penso sia correlato allo script che è stato caricato dal plugin wp-discourse-embed. In realtà sta causando un errore sul tuo sito:

Failed to load resource: the server responded with a status of 404 () discourse-embed.js

C’è anche un <div id="discourse-comments"></div> nella pagina che proviene dal plugin wp-discourse-embed, non dal plugin WP Discourse.

Non abiliterei l’impostazione “Load Comments With Ajax” di WP Discourse finché non confermi che c’è un problema con i commenti memorizzati nella cache sul sito. Anche se fosse così, dovrebbe essere in grado di visualizzare il template dei commenti.

Ci sono plugin installati sul tuo sito relativi ai commenti? Mi chiedo se un plugin, o il tema del sito, stia impedendo il caricamento del template dei commenti di WordPress. Il plugin WP Discourse dipende dal caricamento di quel template. Ci sono alcune soluzioni alternative, ma sono tutte piuttosto tecniche.

Sono sicuro che sarà possibile risolvere le cose :slight_smile:

1 Mi Piace

Stavo esaminando la cronologia del codice del mio tema e mi sono reso conto che tempo fa avevo cambiato tutto il codice dei commenti di WP in commenti di discourse.

Sospetto che sia necessario quello legacy, giusto?

Sto andando a memoria, ma non credo che il file comments.php modificato sia la causa del problema. Quello che dovrebbe succedere è che, invece di caricare il file comments.php del tuo tema, il plugin WP Discourse dovrebbe caricare la propria sezione commenti quando questa funzione viene chiamata dal tuo tema: comments_template().

Dai un’occhiata al file single.php del tuo tema, o a qualsiasi file venga utilizzato per visualizzare un post che hai collegato a Discourse. Vedi se il file contiene una chiamata a comments_template(). Dovrebbe assomigliare a questo:

if ( comments_open() || get_comments_number() ) :
	comments_template();
endif;

È la chiamata a coments_template() che dovrebbe attivare il caricamento dei commenti di WP Discourse.

Potrei sbagliarmi. Posso dare un’occhiata più da vicino se questo non aiuta a risolvere le cose.

Ho risolto il problema. I commenti erano disabilitati a livello di tema. Abilitandoli si è risolto.

Grazie per le risposte dettagliate.

1 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.