Ho un problema per cui sul lato WP non è disponibile alcun collegamento al forum Discourse. Solo alcune risposte agli argomenti del forum che ho trovato a riguardo:
Tutti i campi ‘Contenuto Testo’ sono compilati in WP admin → Sezione Plugin.
La sincronizzazione funziona; posso vedere i commenti su entrambi i lati.
La stringa URL è disponibile nella tabella del database _postmeta
La sezione commenti mi mostra Avvisi:
**Notice**: Trying to access array offset on value of type null in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** on line **90**
**Notice**: Trying to access array offset on value of type null in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** on line **106**
**Notice**: Trying to access array offset on value of type null in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** on line **127**
**Notice**: Trying to access array offset on value of type null in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** on line **127**
**Notice**: Trying to access array offset on value of type null in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** on line **148**
**Notice**: Trying to access array offset on value of type null in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** on line **148**
che sono tutti correlati a $URL nel file. Sto chiamando i commenti con:
global $post;
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments($post->ID);
echo $discourse_comments;
?>
Grazie per avermi contattato… si tratta di un’installazione “fresca” di Wordpress che utilizza il template builder Bricks e ho appena installato WPdiscourse per la connessione. Oltre alla cache del server mod_headers, non ci sono altri plugin aggressivi che alterano script.
Ho appena aggiunto di nuovo la riga PHP diretta e… magicamente l’URL è lì. Non ho idea di cosa ho fatto di diverso.
<?php
global $post;
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments($post->ID);
echo $discourse_comments;
echo get_post_meta( $post->ID, 'discourse_permalink', true );
?>
Ma ho ancora le Notifiche che si riferiscono alle righe di codice in cui l’URL dovrebbe essere costruito e il link dopo “Continua la discussione su” non viene visualizzato.
Quando includo i commenti “principali” di WordPress (che è un elemento del template di Bricks) viene visualizzato il “modulo commenti WP normale” che non viene sostituito dal plugin delle recensioni di Discourse. Vedi l’URL sopra; ho modificato il layout aggiungendo i commenti WP sotto il blog.
Pertanto, ho aggiunto il codice manualmente poiché questo mostrava le recensioni e probabilmente sovrascrive qualsiasi incompatibilità del builder Bricks.
Ok. Probabilmente c’è qualche problema di priorità di caricamento con il template builder che stai usando qui. Cercherò di ricrearlo domani. Stai comodo.
Ci saranno vari aggiornamenti alla funzione di utilità get_discourse_comments nella prossima release (2.4.6), che è attualmente in preparazione per il rilascio. La firma del metodo di utilità aggiornata sarà la seguente
/**
* Ottiene l'HTML del commento di Discourse in modo che possa essere visualizzato senza caricare il template dei commenti.
*
* @param int $post_id L'ID del post per cui visualizzare i commenti.
* @param bool $perform_sync Determina se viene eseguita una sincronizzazione dei commenti durante il caricamento dei commenti.
* @param bool $force_sync Determina se la cache di sincronizzazione dei commenti viene ignorata durante il caricamento dei commenti.
* @param string $comment_type Tipo di visualizzazione del commento.
*
* @return string
*/
public static function get_discourse_comments( $post_id, $perform_sync = true, $force_sync = false, $comment_type ) {
@Joep_Kannegieter Questo avrà alcuni vantaggi per il tuo caso (e per alcuni altri casi):
La visualizzazione dei commenti funzionerà
Controllerai il tipo di visualizzazione dei commenti (cioè tutti i commenti o il link al commento) programmaticamente
Controllerai la cache dei commenti programmaticamente
Non è ancora stato rilasciato. Aspetta finché non vedi la versione 2.4.6 del plugin pronta per l’aggiornamento nel tuo pannello di amministrazione di Wordpress (ti avviserò anche qui).
Tornando qui; in pratica “lo faccio funzionare” anche se non con il template di Bricks Builder.
Quando passo al tema twentytwenty, l’integrazione di Discourse appare sotto il post del blog, sostituendo il campo Commenti
Quando si utilizza Bricks Builder, c’è un elemento “Commenti” che carica i commenti di WP; che non viene sostituito dal plugin. Né chiamato programmaticamente con:
Errore: Argomenti insufficienti per la funzione WPDiscourse\Utilities\Utilities::get_discourse_comments(), 1 passato in /home/u43655p432443/domains/domain.nl/public_html/wp-content/themes/bricks/includes/elements/code.php(159) : eval()'d code on line 4 e esattamente 4 attesi
Quindi è correlato a Bricks. Chiederò anche alla community di Bricks.
Questo errore ti sta dicendo che il tuo utilizzo della funzione di utilità get_discourse_comments necessita di un aggiornamento. Ecco un esempio di come potresti utilizzarla.
global $post;
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments($post->ID, true, true, 'display-comments');
echo $discourse_comments;