Penso di aver risolto: [discourse_latest] non è di per sé uno shortcode valido, pensavo di averlo visto da qualche parte. L’ho sostituito con [discourse_topics source=“latest”] e ha funzionato.
Sorriso imbronciato
Ray
PS Come posso modificare il formato della data negli ultimi argomenti visualizzati dallo shortcode, @simon? Attualmente viene mostrato come 2020-10-20, ma preferirei qualcosa come ott-20 o simile.
Sono abbastanza sicuro che il plugin degli shortcode utilizzi il formato data/ora impostato nella scheda delle opzioni di WP Discourse Commenting. Clicca sul link nella descrizione di quella impostazione per vedere le opzioni disponibili per il formato delle date.
Potreste aggiungere i nomi utente come titoli degli avatar per impostazione predefinita o come opzione per gli shortcode, e magari un’altra opzione per rimuovere il nome utente (display_usernames = “false”?). Nel frattempo, se qualcuno ne ha bisogno, andate su wp-discourse-shortcodes-master/lib/discourse-topic-formatter.php e sostituite
e genera il seguente errore nel frontend: Warning : Invalid argument supplied for foreach() in /home/customer/www/web.com/public_html/wp-content/plugins/wp-discourse-shortcodes-master/lib/discourse-topic-formatter.php alla riga 94
Se può essere utile a qualcuno, il feed RSS della mia community funziona perfettamente e elenca tutti gli argomenti. Cosa potrei aver trascurato? Grazie per l’aiuto
Modifica e aggiornamento: Sembra che la variabile topics non venga popolata nel codice.
Riga 94: foreach ( $topics as $topic ) {
.....
}
//Definizione della variabile Topic
if ( $use_plugin_formatting ) {
$topics = $discourse_topics['topic_list']['topics'];
}
L’ho capito. La casella di controllo per mostrare i post privati non era attivata. Oltre a ciò, l’errore può essere risolto aggiungendo una condizione per il valore nullo della variabile $topics. L’ho fatto e ha funzionato perfettamente.
Se solo il foreach di PHP non si lamentasse degli array vuoti, la mia vita sarebbe molto migliore.
Aggiungeremo questo controllo nella prossima versione.
Qual è l’opzione per aggiornare Discourse con la nuova immagine del profilo WP degli utenti?
Utilizzare un webhook per sincronizzare i dati utente con Discourse. - che ho creato e funziona tra i due siti, ma non aggiorna l’immagine del profilo degli utenti su Discourse?
Questo è finalmente in cima alla mia lista, quindi ci lavorerò domani, correggendo alcuni bug e rispondendo alle tue domande. Mi scuso per il lungo ritardo.
Ho testato a fondo il plugin, corretto alcuni bug, due dei quali riguardavano il mancato aggiornamento della cache dell’output dello shortcode, aggiornato il readme e rilasciato una nuova versione.
Vedo ancora un grosso problema in cui gli shortcode [discourse_topics] con categorie diverse non funzionano correttamente. Questo richiederà una notevole quantità di lavoro per essere risolto. Mi occuperò di questo subito dopo la mia imminente vacanza.
Ho solo uno shortcode in uso in questa istanza, quindi non sono sicuro se dovrei avere problemi. Vorrei mostrare argomenti privati, ma solo di determinate categorie (che sono raccolte sotto un’unica categoria padre). Né l’ID della singola categoria padre (ad esempio, [discourse_topics category="5" ... ]) né ciascuno degli ID delle sottocategorie (ad esempio, [discourse_topics category="6,7,8,9,17" ... ]) sembrano limitare i risultati a queste categorie (vengono mostrati argomenti privati aggiuntivi che non dovrebbero esserlo). Mi chiedo se questo sia il comportamento attualmente previsto (che affronterete)?
In effetti, questo non è il comportamento previsto.
Una soluzione rapida potrebbe essere quella di disattivare la casella di controllo Mostra argomenti privati nella scheda delle impostazioni. Ciò non risolverà il problema della selezione errata delle categorie, ma impedirà la visualizzazione degli argomenti privati in WordPress.
Puoi controllare i tuoi log sul lato Discourse e cercare la chiamata API che viene effettuata? La chiamata API verrà attivata quando modifichi e cambi la pagina sul lato WordPress.
Non sono riuscito a trovare alcuna chiamata API nei log di Discourse. Tuttavia, la buona notizia è che penso di averlo risolto.
Lo shortcode originale utilizzava source="top" e altri parametri, quindi ho gradualmente ridotto lo shortcode fino a quando non ha utilizzato solo le impostazioni predefinite per omissione. Avevo l’impressione che solo source="latest" utilizzasse un webhook secondo il linguaggio della casella di controllo nelle impostazioni di amministrazione di WP, ma abbiamo abilitato un webhook per gli argomenti più recenti (e inoltre abbiamo limitato il trigger solo alle categorie che volevamo mostrare) e poi, quando ho riaggiunto la categoria padre, lo shortcode ha iniziato a rispettare le restrizioni di categoria! (Non ha rispettato la restrizione di categoria nemmeno con source="latest" finché non ho abilitato il webhook, nonostante la pulizia della cache HTML tramite la pagina di amministrazione di WP e altre fonti di caching che abbiamo per il sito.)
Dopo aver visto i risultati desiderati utilizzando il webhook + source="latest", ho riportato la sorgente a “top” e poi ho riaggiunto gradualmente i parametri originali. Finora ha mantenuto il rispetto della restrizione di categoria. Ho lasciato abilitato il webhook.
Se il webhook è ciò che sta aiutando (ancora, e non solo qualcosa che è servito come sorta di reset), suggerisco di cambiare la dicitura della pagina di amministrazione di WP da “Utilizza un Webhook di Discourse per aggiornare l’elenco degli argomenti ‘più recenti’” a “Utilizza un Webhook di Discourse per aggiornare l’elenco [discourse_topics]” (o qualcos’altro per chiarire che non importa quale sorgente stai utilizzando nell’elenco degli argomenti, il webhook sarà probabilmente l’elisir risolutivo che stiamo cercando).