I commenti di Discourse non si riflettono sul blog WordPress (versione 2025)

Continuando la discussione da I commenti di Discourse non vengono riflessi sul blog di Wordpress:

Ciao. Ho installato una copia fresca di Discourse 3.4.0 (4abee26a32) e WordPress 6.7.2 sul mio PC locale per testare e non riesco a far sincronizzare i commenti da Discourse a WordPress (anche se il post iniziale si sincronizza da WordPress a Discourse). Il mio problema sembra essere molto simile al report molto più vecchio collegato sopra. Potrebbe essere una regressione?

Ho abilitato tutti i log, ma questo è tutto ciò che vedo nei log della mia istanza di WordPress:

[2025-02-26 21:24:55] connection.INFO: check_connection_status.successful_connection  
[2025-02-26 21:24:55] connection.INFO: check_connection_status.valid_scopes  
[2025-02-26 21:28:49] publish.INFO: create_post.post_success {"wp_title":"This is a test","wp_author_id":"1","wp_post_id":7} 
[2025-02-26 21:28:49] publish.INFO: create_post.body_valid {"wp_title":"This is a test","wp_author_id":"1","wp_post_id":7} 
[2025-02-26 21:28:49] publish.INFO: create_post.after_publish {"post_id":7,"remote_post_type":"create_post","discourse_post_id":"34","discourse_topic_id":"16","discourse_permalink":"https://discourse.cs.siue.edu/t/this-is-a-test/16"} 
[2025-02-26 21:28:49] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"7"} 
[2025-02-26 21:29:27] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"7"} 
[2025-02-26 21:53:39] webhook_topic.INFO: update_topic_content.update_post_metadata_success {"post_ids":"7"} 

E questo è tutto ciò che vedo nella sezione commenti del mio post di WordPress:

Il conteggio delle risposte si incrementa immediatamente, ma non vedo i commenti effettivi. Non vedo nemmeno errori nei log di sistema in /var/log/php-fpm/www-error.log.

Qualcuno ha qualche idea su cosa potrebbe causare questo problema o su come procedere per il debug? Grazie.

Ciao @Gregory_Bartholomew, posso garantirti che non si tratta di una regressione. Analizziamo cosa nella tua configurazione locale potrebbe causare questo problema.

  1. Quale tema stai usando?
  2. È un tema abilitato ai blocchi?
  3. Hai personalizzato il tema?
  4. Quali impostazioni hai abilitato per il plugin WP Discourse (forse condividi il file meta dai log).

A un certo punto, mantenere abilitati i commenti di WordPress ha fatto esattamente questo. È successo almeno un anno fa e non ho mai verificato se quel comportamento sia cambiato o se fosse una questione dipendente dal tema.

Se stai riscontrando un problema simile, possiamo indagare in parallelo. Sei in grado di condividere le risposte alle stesse domande?

Potrei, ma non è stato un problema dopo aver disabilitato i commenti di WordPress. Il problema dell’OP è che i commenti di WordPress sovrastano Discourse. E ci può essere anche una soluzione facile: quel post non viene mai collegato a Discourse :smirking_face:

Capisco. Penso che il tuo problema potrebbe essere stato diverso da quello di @Gregory_Bartholomew. Vediamo se riusciamo a ottenere alcune specificità sulla sua configurazione e ad arrivare al fondo del suo problema. Ogni problema deve essere trattato in modo nuovo.

Beh, non ho problemi in corso, perché in nessuna situazione consento i commenti nativi di Wordpress. Discourse se ne occupa in modo del tutto gradevole. I miei pensieri erano solo una debole idea di soluzione, e portano a problemi di configurazione :man_shrugging:

Stai dicendo che devo disabilitare il sistema di commenti integrato di WordPress in qualche modo?


Attualmente è il tema predefinito twentytwentyfive.

Sì, lo è. Inoltre (ma probabilmente non correlato), c’era un piccolo bug nel tema predefinito che mi ha richiesto di caricare e salvare nuovamente il file index.html. Il problema e la soluzione sono documentati qui.

A parte la soluzione di cui sopra per correggere un problema apparentemente non correlato, no, non ho apportato alcuna personalizzazione al tema.

Certo, ecco l’output meta dalla pagina dei log.

### Questo file è incluso nei download dei log ###

### Server ###

WordPress - 6.7.2
PHP - 8.3.17
MySQL - 10.11.10

### Plugin Attivi ###

Fedora SSR Endpoint - 1.3.0
WP-Discourse - 2.5.6

### Impostazioni WP Discourse (Segreti Esclusi) ###

connection-logs - 1
display-subcategories - 0
allow-tags - 0
max-tags - 5
publish-as-unlisted - 0
full-post-content - 0
custom-excerpt-length - 55
add-featured-link - 0
auto-publish - 1
force-publish - 0
force-publish-max-age - 0
publish-failure-notice - 0
auto-track - 1
allowed_post_types - post
exclude_tags -
hide-discourse-name-field - 0
discourse-username-editable - 0
direct-db-publication-flags - 0
verbose-publication-logs - 1
enable-discourse-comments - 1
comment-type - display-comments
ajax-load - 0
load-comment-css - 0
discourse-new-tab - 0
hide-wordpress-comments - 0
show-existing-comments - 0
max-comments - 5
min-replies - 1
min-score - 0
min-trust-level - 1
bypass-trust-level-score - 50
only-show-moderator-liked - 0
custom-datetime-format -
cache-html - 0
clear-cached-comment-html - 0
verbose-comment-logs - 1
use-discourse-webhook - 1
webhook-match-old-topics - 0
use-discourse-user-webhook - 0
webhook-match-user-email - 0
verbose-webhook-logs - 1
enable-sso - 0
auto-create-sso-user - 0
real-name-as-discourse-name - 0
force-avatar-update - 0
redirect-without-login - 0
sso-client-enabled - 0
sso-client-login-form-change - 0
sso-client-sync-by-email - 0
sso-client-disable-create-user - 0
sso-client-sync-logout - 0
logs-enabled - 1

Una leggera inesattezza che noto nell’output meta è che non sto usando “MySQL” ma il suo fork “MariaDB” (mariadb-server-10.11.10-1.fc41.x86_64). Inoltre, ho installato il pacchetto php-mysqlnd (php-mysqlnd-8.3.17-1.fc41.x86_64).

Grazie per i dettagli @Gregory_Bartholomew. Dato che si tratta di un tema con blocchi abilitati, hai provato il WP Discourse Comments Block?

Sì, ho visto quel video e ho già abilitato la casella di controllo in alto:

image

Quindi, solo per confermare, sei andato su Aspetto > Editor, hai aperto il Modello post singolo e aggiunto il blocco WP Discourse al modello?

No, non ricordo di aver fatto nulla del genere. Suppongo di essermelo perso nel video. Ci proverò ora. Grazie!

Beh, sembrava promettente, ma quando ho cliccato su “visualizza sito” per tornare alla pagina principale dell’indice, si è bloccato. :confused:

Dal log di php-fpm:

[27-Feb-2025 15:21:37 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function WPDiscourse\\Shared\\mb_convert_encoding() in /wordpress/wp-content/plugins/wp-discourse/lib/template-functions.php:335
Stack trace:
#0 /wordpress/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php(136): WPDiscourse\\DiscourseCommentFormatter\\DiscourseCommentFormatter->fix_avatars_in_quotes()
#1 /wordpress/wp-content/plugins/wp-discourse/lib/discourse-comment.php(312): WPDiscourse\\DiscourseCommentFormatter\\DiscourseCommentFormatter->format()
#2 /wordpress/wp-content/plugins/wp-discourse/blocks/comments/comments.php(34): WPDiscourse\\DiscourseComment\\DiscourseComment->comments_template()
#3 /wordpress/wp-includes/class-wp-block.php(537): render_block_wpdc_comments()
#4 /wordpress/wp-includes/class-wp-block.php(517): WP_Block->render()
#5 /wordpress/wp-includes/class-wp-block.php(517): WP_Block->render()
#6 /wordpress/wp-includes/blocks/post-template.php(123): WP_Block->render()
#7 /wordpress/wp-includes/class-wp-block.php(537): render_block_core_post_template()
#8 /wordpress/wp-includes/class-wp-block.php(517): WP_Block->render()
#9 /wordpress/wp-includes/class-wp-block.php(517): WP_Block->render()
#10 /wordpress/wp-includes/blocks.php(2191): WP_Block->render()
#11 /wordpress/wp-includes/blocks.php(2243): render_block()
#12 /wordpress/wp-includes/block-template.php(263): do_blocks()
#13 /wordpress/wp-includes/template-canvas.php(12): get_the_block_template_html()
#14 /wordpress/wp-includes/template-loader.php(106): include('...')
#15 /wordpress/wp-blog-header.php(19): require_once('...')
#16 /wordpress/index.php(17): require('...')
#17 {main}
  thrown in /wordpress/wp-content/plugins/wp-discourse/lib/template-functions.php on line 335

Modifica 1: Dice funzione non definita mb_convert_encoding(). Forse devo solo installare un pacchetto PHP mancante?

Modifica 2: Sì, era solo quello. Dovevo installare php-mbstring. Ora sembra che tutto funzioni. Grazie!

Un piccolo problema che vedo ancora è che le emoji e gli avatar non sembrano essere visualizzati:

Immagino di dover ancora configurare qualcosa?

Dal lato Discourse, il mio avatar è solo la lettera predefinita in un cerchio:

Inoltre, anche l’emoji non sembra essere visualizzata correttamente dal lato Discourse, ma sono meno preoccupato per questo perché non gestisco l’istanza Discourse di produzione che spero di utilizzare in futuro. :slightly_smiling_face:

Modifica: Lascia perdere il problema degli avatar. Sembra che possa essere almeno in parte dovuto al modo in cui è configurato il mio ambiente. Sto puntando WordPress alla porta 3000, ma gli avatar si risolvono in http://localhost:4200/letter_avatar_proxy/v4/letter/.... Probabilmente li disabiliterò comunque.

Sono contento che tu sia riuscito a farlo funzionare!