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).
Inoltre, un bug con le categorie nidificate che non vengono visualizzate. Vengono visualizzati solo gli argomenti all’interno di una categoria primaria.
Vedi esempio sotto: Generale ma nessuna Notizie ed Eventi di Generale >>
Ehi Ryan, né le anteprime delle immagini degli argomenti né i nomi sono funzionalità del plugin, tuttavia puoi usare questi filtri per applicare la tua formattazione e per aggiungere eventualmente quegli elementi.
Per sovrascrivere completamente l’output HTML usa questi due filtri (cioè gli equivalenti di add_filter)
// Restituisci false per usare la tua formattazione
apply_filters( 'wpds_use_plugin_topiclist_formatting', true );
// Restituisci il tuo output HTML dai dati di discourse_topics
apply_filters( 'wpds_after_topiclist_formatting', $output, $discourse_topics, $args );
Oppure aggiungi elementi aggiuntivi nell’HTML esistente
Corretto. Se un topic risiede in una categoria nidificata, il badge non verrà visualizzato. Lo screenshot qui sotto mostra il badge mancante. Questo è un topic all’interno della categoria nidificata Generale >> Notizie ed eventi. Se cambiassi la categoria del topic alla categoria padre ‘Generale’, il badge verrebbe visualizzato come il secondo topic sottostante..
Grazie. FWIW, ho aggiunto un attributo “nome reale” per sostituire i nomi utente e ho pubblicato le mie modifiche all’interno di questo repository. Sono abbastanza nuovo a git, quindi mi scuso se non ho seguito i canali di commit corretti, ma le modifiche sono lì se mai utili a qualcun altro.
Il problema principale di questo plugin rimane l’impossibilità di includere/escludere per categoria. In un forum privato basato su abbonamento, vedi tutte le categorie o nessuna, il che significa che non c’è modo di escludere gli argomenti dello staff dall’essere mostrati alla base di membri più ampia.
Tuttavia, sembra che una facile soluzione alternativa potrebbe essere quella di commentare la richiesta ajax e fare affidamento esclusivamente sul webhook. Abbiamo impostato dei trigger per escludere la categoria dello staff nel webhook..