Configura WP Discourse per mostrare i commenti da Discourse

È possibile utilizzare Discourse come sistema di commenti per WordPress. Le funzionalità di commento dipendono dalle funzionalità di pubblicazione, quindi è necessario che la pubblicazione sia configurata affinché i commenti funzionino. Se hai configurato la pubblicazione e sei pronto per configurare i commenti, guarda questo breve video o segui le istruzioni qui sotto.

Prossimo Passo

Una volta configurati i commenti, potresti voler consultare i seguenti argomenti


Istruzioni

Configurazione dei commenti

Affinché i commenti di Discourse vengano visualizzati sul tuo sito WordPress, devi selezionare l’impostazione Abilita commenti Discourse. Quando abilitata, vedrai due opzioni. L’opzione Visualizza commenti caricherà un modello di commento per ogni post di WordPress che è stato pubblicato su Discourse. Questo modello visualizzerà i commenti di Discourse sotto i post di WordPress. L’opzione Visualizza un link ai commenti caricherà un modello di commenti che visualizza un link all’argomento Discourse associato sotto i post pubblicati. Il numero di risposte all’argomento verrà visualizzato nel link, ma nessuna risposta verrà visualizzata su WordPress.

Entrambe queste opzioni di commento funzionano caricando modelli di commento per i post di WordPress. Ciò significa che funzioneranno solo se i commenti sono abilitati per il post. Se desideri abilitare i commenti per tutti i post, ma non vuoi che vengano visualizzati commenti storici di WordPress per i post che non sono stati pubblicati su Discourse, abilita l’impostazione Rimuovi modello commenti WordPress.

Impostazioni

Ecco alcune brevi descrizioni su cosa fanno le altre impostazioni di commento. Se non sei ancora sicuro di una delle impostazioni, rispondi a questo argomento e chiedi ulteriori chiarimenti.

Carica commenti con Ajax

Questa impostazione viene utilizzata per caricare i commenti dal client WordPress, invece di caricarli dal server. Questo è utile se la cache della pagina impedisce il caricamento di commenti freschi sul tuo sito.

Carica CSS commenti

Questa impostazione carica un foglio di stile che corregge i problemi con le onebox e le citazioni di Discourse quando vengono visualizzate su WordPress.

Mostra commenti WP esistenti

Seleziona questa impostazione per mostrare anche i commenti WordPress esistenti per i post che sono stati pubblicati anche su Discourse, seleziona l’impostazione.

Titolo commenti esistenti

Se stai mostrando i commenti esistenti, questa impostazione aggiungerà un titolo sopra i commenti di WordPress.

Impostazioni di importazione selettiva

Ci sono una serie di impostazioni che ti consentono di importare selettivamente i commenti. Questi dovrebbero essere autoesplicativi. I valori predefiniti per ciascuno di questi sono un buon punto di partenza, quindi cambiali solo se hai un motivo per farlo

  • Commenti visibili massimi
  • Numero minimo di risposte
  • Punteggio minimo dei post
  • Livello di fiducia minimo
  • Ignora punteggio livello di fiducia
  • Importa solo quelli apprezzati dai moderatori
Formato data/ora personalizzato

Questa impostazione formatta la data visualizzata per ogni commento di Discourse che appare sul tuo sito WordPress. Inizia con il valore predefinito. Se desideri modificare il formato della data, fai clic sul link nella descrizione dell’impostazione per i dettagli su come farlo.

Cache HTML commenti

Questa impostazione può essere utilizzata per migliorare le prestazioni. La cache dell’HTML dei commenti riduce il numero di richieste effettuate a Discourse. La sua impostazione associata Cancella cache HTML commenti dovrebbe essere autoesplicativa.

Log commenti dettagliati

Abilitando questa opzione verranno registrati tutti i recuperi riusciti di commenti da Discourse, oltre agli errori (il valore predefinito).

Webhook di sincronizzazione dati commenti

Abilitare il webhook di sincronizzazione dati commenti nel pannello delle impostazioni “Webhook” può ridurre notevolmente il numero di richieste API effettuate da WordPress a Discourse. Prima di abilitare il webhook

  1. visita l’URL di Discourse fornito nella descrizione dell’impostazione (http://forum.example.com/admin/api/web_hooks).

  2. Fai clic sul pulsante ‘Nuovo Webhook’ e compila il modulo

    • Nel campo URL payload, inserisci l’URL fornito nella descrizione del campo WP Discourse Sync Comment Data. Sarà qualcosa di simile a questo, tranne che utilizzerà l’URL del tuo sito WordPress: https://wp-discourse.dev/wp-json/wp-discourse/v1/update-topic-content.

    • Assicurati che il campo Content Type sia impostato su application/json.

    • Nell’input Secret, inserisci una stringa di testo, lunga almeno 12 caratteri. Quindi copia la stessa chiave nell’impostazione WP Discourse Webhook Secret Key.

    • Nella casella “Quali eventi dovrebbero attivare questo webhook?”, assicurati che sia selezionato “Post Event”.

    • Utilizza il campo Categorie attivate se pubblichi post da WordPress solo in categorie specifiche. In questo modo, il tuo sito WordPress non avrà bisogno di elaborare richieste webhook per argomenti che non hanno un post Discourse associato.

    • Lascia abilitata l’impostazione Verifica certificato TLS dell’URL payload.

    Infine, abilita la casella di controllo “Attivo” e fai clic su crea. Quando il webhook è stato salvato, fai clic sul pulsante Vai agli eventi.

  3. Torna su WordPress, assicurati di aver inserito il segreto webhook da Discourse nel campo Webhook Secret Key e abilita l’impostazione webhook Sync Comment Data. Quindi salva le opzioni.

Il webhook di Discourse dovrebbe ora funzionare. Dovresti verificarlo facendo clic sul pulsante Ping del webhook su Discourse (trovato in /admin/api/web_hooks/:webhook_id/events). Assicurati che il ping del webhook restituisca un codice di stato 200.

Regolazione del periodo di sincronizzazione comments_number per le pagine di archivio di WordPress

Per ottenere il numero corretto di commenti di Discourse per un post, il plugin deve periodicamente effettuare una richiesta HTTP a Discourse per ottenere il numero corrente di commenti. Nelle pagine singole questo periodo è impostato per non essere più frequente di ogni 10 minuti. Per le pagine di archivio, il periodo è impostato per non essere più frequente di una volta ogni 24 ore. Il motivo è evitare di effettuare più richieste a Discourse ogni volta che viene acceduta una pagina di archivio.

Se scopri ancora che il plugin effettua troppe richieste a Discourse quando visualizza le pagine di archivio del tuo sito, puoi regolare archive_page_sync_period agganciandoti al filtro 'discourse_archive_page_sync_period'. Puoi farlo aggiungendo qualcosa di simile al file functions.php del tuo tema:

add_filter( 'discourse_archive_page_sync_period', 'my_namespace_archive_page_sync_period' );
function my_namespace_archive_page_sync_period( $sync_period ) {
  // Questo cambierà il periodo di sincronizzazione per i post archiviati a una volta alla settimana.
  return WEEK_IN_SECONDS;
}

Se scopri che il plugin non effettua abbastanza richieste a Discourse per recuperare i numeri di commenti correnti per le pagine di archivio, puoi aggiungere qualcosa di simile al file functions.php del tuo tema. Questo imposterà archive_page_sync_period a 10 minuti.
Nota: su un sito trafficato questo potrebbe caricare pesantemente il tuo server.

add_filter( 'discourse_archive_page_sync_period', 'my_namespace_archive_page_sync_period' );
function my_namespace_archive_page_sync_period( $sync_period ) {
  // Questo cambierà il periodo di sincronizzazione per i post archiviati a una volta alla settimana.
  return 10 * MINUTE_IN_SECONDS;
}

Visualizza commenti senza caricare il modello di commenti di WordPress

Il plugin WP Discourse utilizza il modello di commenti di WordPress per caricare i commenti di Discourse. Se il tuo tema non carica il modello di commenti, puoi visualizzare i commenti con la funzione helper statica get_discourse_comments. Questa funzione richiede di fornire l’ID del post di WordPress per il quale si desidera visualizzare i commenti. Ecco un semplice esempio del suo utilizzo:

use WPDiscourse\\Utilities\\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments(859);
echo $discourse_comments;

I commenti verranno visualizzati nello stesso modo in cui vengono visualizzati se selezioni l’opzione Abilita commenti Discourse/Visualizza commenti (trovata nella scheda Impostazioni commenti del plugin). Quando viene utilizzata questa funzione, il valore di tale impostazione viene ignorato, ma tutte le altre impostazioni dei commenti vengono rispettate.

Risoluzione dei problemi

Il problema più comune con i commenti di Discourse è che potrebbero non apparire istantaneamente dopo che il post è stato creato su Discourse. Questo ritardo è intenzionale poiché il plugin cerca di ridurre il numero di richieste che deve effettuare a Discourse. Effettuare una richiesta ogni volta che la pagina viene caricata rallenterà il tuo sito. Se non vedi apparire i commenti istantaneamente, attendi 10 minuti prima di aggiornare di nuovo la pagina.

Problemi con il numero di commenti quando si visualizzano sia i commenti di Discourse che quelli di WordPress

Il plugin wp-discourse utilizza l’hook del filtro WordPress get_comments_number in modo che il numero di commenti di Discourse creati per un post possa essere visualizzato in tutto il tuo tema. Questo crea un conflitto quando sia i commenti di Discourse che quelli di WordPress vengono visualizzati per un post. Il plugin è in grado di risolvere tale conflitto nella maggior parte dei luoghi. Un luogo in cui non può essere risolto è nel titolo del commento che i temi WordPress spesso visualizzano all’inizio della sezione dei commenti. Questa è la sezione che inizia con qualcosa come “2 pensieri su…”.

Il modo più semplice per farlo è aggiungere una regola al file css del tuo tema.

.discourse-comments-area ~ .comments-area .comments-title  {
	display: none;
}
8 Mi Piace

@angus ottima guida e video, grazie per averli realizzati. Abbiamo implementato il plugin e siamo bloccati sulla funzionalità di commento. Ci sono due domande/problemi qui:

  • Quando pubblichiamo una risposta su Discourse (al post condiviso da WordPress) vediamo il conteggio delle risposte cambiare su WordPress, ma non vediamo alcun commento apparire.
  • Vorremmo disattivare i commenti di WordPress in modo che gli utenti possano rispondere solo tramite Discourse, è possibile?

Ecco cosa vediamo, questo ‘1’ di risposta proviene da Discourse e noterai che la risposta stessa non è visibile:

CC: @Abdelrahman_MoHamed

Ciao @Jacob_Peebles,

Supponendo che tu abbia seguito la guida sopra, la prossima cosa da controllare è il tuo tema. Stai forse usando un tema a blocchi (Block Theme)? Se sì, vedi:

Sì, basta disattivare i commenti in WordPress.

  1. Seleziona Impostazioni > Discussione dalla dashboard.
  2. Deseleziona la casella accanto a “Consenti alle persone di pubblicare commenti sui nuovi articoli”.
  3. Fai clic su Salva impostazioni.
1 Mi Piace

@angus - ottimo, ha funzionato alla grande! Sì, apparentemente siamo sull’editor ‘block’. Puoi vedere le cose funzionare qui:

L’unica cosa strana è che gli stili/font non sembrano propagarsi nei commenti di discourse. Non sono sicuro se sia solo un problema del nostro tema o qualcosa da segnalare.

Grazie ancora.

scusa, ecco anche uno screenshot.

Sono contento che funzioni per te Jacob.

Dovrai aggiungere il tuo stile ai commenti. I commenti di Discourse sono intenzionalmente molto leggermente stilizzati “out of the box” poiché ogni tema ha il suo approccio allo styling. Nel tuo caso, alcuni stili di base come questi dovrebbero fare al caso tuo

ol.comment-list {
    list-style: none;
    padding: 0;
}

img.avatar.photo.avatar-default {
    height: 40px;
    width: 40px;
}

.comment-author.vcard {
   display: flex;
   align-items: center;
   gap: 1em;
}

1 Mi Piace

Eccellente @angus

Ciao @angus

Grazie per l’ottimo plugin e le utili istruzioni!

Ho integrato Discourse nel mio sito web Wordpress ed è connesso.
Sono riuscito a creare un post sul sito WP e a vedere che è stato importato come nuovo Topic in Discourse, il che è fantastico!

Tuttavia, continua a visualizzare solo il contenuto iniziale del post come estratto (hello world ecc.) su Discourse, e non aggiorna il contenuto del topic di Discourse dopo averlo modificato nel post di WP. Riflette il cambiamento nel contenuto solo se si clicca su Mostra Post Completo, il che significa che non posso cambiare l’impostazione per mostrare il contenuto completo del post e non solo l’estratto. Quando lo faccio, il pulsante viene semplicemente rimosso dal topic di Discourse e mostra solo il contenuto iniziale prima che fosse aggiornato. Non so se mi spiego?

E poi, anche i commenti pubblicati da Discourse come risposte al topic non appaiono sotto il post su WP. Ho abilitato i commenti e sto usando il tema Astra, quindi non un editor a blocchi. Non sono sicuro di cosa dovrei fare per risolvere questo problema.

Qualsiasi consiglio su questi 2 punti sarebbe molto apprezzato, grazie!

Ciao @Clo, grazie per aver provato il plugin. Potresti chiarirmi il tuo stato ideale per la pubblicazione? Prova a esporlo come una “user story”. Per quanto riguarda i commenti, i commenti di WordPress sono abilitati sul tuo sito?

Ciao @angus

Sembra che i commenti siano finalmente arrivati dal sito Discourse al sito WP, ci è voluto parecchio tempo. Grazie comunque!

Tuttavia, volevo anche chiedere se è possibile che il plugin crei un nuovo post in WP ogni volta che viene creato un nuovo argomento in Discourse? O è possibile solo nell’altro verso?

È possibile farlo solo con plugin personalizzati aggiuntivi sia sul lato Wordpress che su quello Discourse. Il plugin WP Discourse stesso non è progettato per questo.

Grazie mille, è utile.
Ottimo plugin!

1 Mi Piace