Wir haben ein benutzerdefiniertes Discourse-Theme erstellt, bei dem bestimmte Kategorien auf der Startseite mithilfe von JavaScript angezeigt werden. Das Skript verwendet eine vordefinierte Liste von Kategorienamen (als kommaseperiertes Array), um Inhalte von /categories.json abzurufen und darzustellen.
Während die meisten Kategorien korrekt angezeigt werden, fehlen einige auf der Startseite — obwohl sie ausdrücklich im Skript aufgelistet sind und im System mit gültigen Kategorie-IDs existieren.
Bei der Überprüfung der /categories.json-Antwort stellten wir fest, dass diese spezifischen Kategorien überhaupt nicht im API-Ergebnis enthalten sind. Sie:
Existieren in der Discourse-Instanz
Sind oberste Ebene Kategorien
Haben everyone mit mindestens “Sehen”-Berechtigungen
Sind nicht archiviert, versteckt oder verschachtelt
Wir versuchen zu verstehen:
Unter welchen Bedingungen entfernt Discourse Kategorien aus categories.json?
Wie können wir sicherstellen, dass alle benötigten Kategorien in dieser Antwort erscheinen, insbesondere wenn wir sie auf der Startseite über benutzerdefinen Code anzeigen möchten?
Für Einsichten oder empfohlene Lösungen wären wir dankbar.
Dies ist die neueste Discourse-Version und sie hat noch keine Themen… Ich habe versucht, ein Dummy-Thema in eine der unsichtbaren Kategorien anhand der Kategorie-ID zu erstellen, in der Annahme, dass dies die Kategorien-JSON aufrufen würde, um sie aufzulisten, aber es hat nicht geholfen und daher wurde das Dummy-Thema ebenfalls gelöscht… Derzeit haben beide Kategorien keine Themen…
Es scheint, als hätte ich Recht. Es wäre unsinnig, wenn „latest“ eine Reihe von Kategorien sendet, die bei einem Ausfall nicht verwendet werden. Ich würde entweder die gewünschten Kategorien fest codieren oder sie in eine Theme-Einstellung aufnehmen.
Sie könnten auch einen Ajax-Aufruf tätigen, aber das würde die Dinge verlangsamen.
Okay. Ich denke, wenn Sie diesen Endpunkt erhalten, enthält er Kategorien, aber die Kategorien, die in /latest enthalten sind, sind wahrscheinlich nur diejenigen, die für diese Themen benötigt werden.
Ich habe mich wahrscheinlich geirrt. Ich dachte, es ginge darum, dass /categories.json aus unbekannten Gründen bestimmte Kategorien nicht enthält, und dachte, ich würde versuchen, solche ohne Themen als Ursache auszuschließen.
Es ist nicht klar, dass ich derjenige war, der verwirrt war. Und wir können beide Recht haben. Mir ist immer noch nicht klar, was der OP sich angesehen hat.
Danke Pfaffman, JammyDodger. Da wir ein maßgeschneidertes Theme verwenden, haben wir versucht, einige zuvor versteckte Kategorien zur Startseite hinzuzufügen, indem wir sie an die bestehende Liste der exponierten Kategorien in unserem JavaScript angehängt haben. Wir haben bereits fünf Kategorien, die mit dieser Methode korrekt angezeigt werden. Das Hinzufügen dieser beiden zusätzlichen Kategorien führt jedoch nicht dazu, dass sie auf der Startseite erscheinen. Zur Fehlerbehebung haben wir sogar versucht, ein Thema in eine von ihnen zu posten, um zu sehen, ob das die Sichtbarkeit auslöst, aber es hatte keinen Effekt.
Aktivierung des Lazy Load hat dieses Problem behoben, um die Kategorien anzuzeigen, die zuvor nicht sichtbar waren..Ich bin mir nicht sicher, wie das damit zusammenhängt…Es impliziert jedoch, dass die Kategorien kein Berechtigungsproblem haben..Ich habe den Grund jedoch noch nicht gefunden, um dieses Problem zu lösen.
Dieser Lazy-Load-Code ist wahrscheinlich so ausgelegt, dass er keine Kategorien sendet, von denen er glaubt, dass sie nicht gesendet werden müssen. Ich bin mir nicht sicher, wie ich es ihm beweisen soll, dass Sie alle Kategorien möchten.