Abbiamo creato un tema personalizzato per Discourse in cui alcune categorie specifiche vengono visualizzate sulla homepage utilizzando JavaScript. Lo script utilizza una lista predefinita di nomi di categorie (come array separato da virgole) per recuperare e rendere i contenuti da /categories.json.
Mentre la maggior parte delle categorie viene visualizzata correttamente, alcune risultano mancanti dalla homepage, anche se sono esplicitamente elencate nello script e presenti nel sistema con ID di categoria validi.
Esaminando la risposta di /categories.json, abbiamo scoperto che queste categorie specifiche non sono incluse affatto nell’output dell’API. Tuttavia:
Esistono nell’istanza Discourse
Sono categorie di livello superiore
Hanno everyone con almeno i permessi “Vedi”
Non sono archiviate, nascoste o annidate
Stiamo cercando di capire:
In quali condizioni Discourse omette le categorie da categories.json?
Come possiamo assicurarci che tutte le categorie necessarie appaiano in quella risposta, soprattutto se vogliamo visualizzarle sulla homepage tramite codice personalizzato?
Qualsiasi informazione o soluzione raccomandata sarebbe apprezzata.
questa è l’ultima versione di discourse e non ha ancora argomenti… ho provato a creare un argomento fittizio in una delle categorie invisibili in base all’ID della categoria, presumendo che ciò avrebbe richiamato il json delle categorie per elencarle, ma non ha aiutato e quindi ho eliminato anche l’argomento fittizio… attualmente entrambe le categorie non hanno argomenti…
Sembra che abbia ragione. Sarebbe sciocco avere le ultime categorie inviate che non vengono utilizzate nell’interruzione. Penso che quello che farei sarebbe codificare le categorie che desideri o inserirle in un’impostazione del tema.
Potresti anche fare una chiamata Ajax, ma ciò rallenterebbe le cose.
Bene. Credo che se si ottiene quell’endpoint, avrà delle categorie, ma quelle incluse in /latest sono probabilmente solo quelle necessarie per quegli argomenti.
Mi sono probabilmente confuso. Pensavo riguardasse il fatto che /categories.json non includesse certe categorie per un motivo sconosciuto e ho pensato di provare a escludere quelle senza argomenti come causa.
Abilitando il caricamento lazy, ho risolto questo problema per visualizzare le categorie che prima non erano visibili… Non sono sicuro di come sia collegato… Tuttavia implica che le categorie non abbiano problemi di autorizzazione… non ho ancora trovato la causa principale per risolvere questo problema.
Quel codice di caricamento lazy, credo, è progettato per non inviare le categorie che pensa non siano necessarie inviare. Non sono sicuro di come convincerlo che vuoi tutte le categorie.