Menueintrag ausblenden, wenn keine Beiträge in der Kategorie vorhanden sind
Autor: René A. Da Rin,   Artikel erstellt: am 05.02.2020



Ich habe auf einer Seite eine Kategorie ‘Aktuelles’, in welche ich hin und wieder was schreibe. Das sind Beiträge mit Nachrichtencharakter, welche nach kurzer Zeit nicht mehr interessant sind und deshalb nicht archiviert werden.

Mit dem Plugin Post Expirator werden die Beiträge nach einer vorgegebenen Zeit automatisch gelöscht. Somit kommt es oft vor, dass die Kategorie über einen längeren Zeitraum leer bleibt. Während dieser Zeit macht der Menueintrag ‘Aktuelles’ keinen Sinn. Warum soll man die Möglichkeit haben, eine leere Kategorie an zu klicken?

Für Widgets gibt es ein Plugin (Widget Visibility Time Scheduler) um diese Zeitgesteuert anzuzeigen. Für Menueinträge habe ich nichts passendes gefunden.

Deshalb habe ich zu einer etwas unkonventionellen Lösung gegriffen. Zuerst lade ich maximal einen Beitrag der Kategorie in einer Funktion. Liefert mir Diese irgendwelche Inhalte, gibt es mindestens einen Beitrag in der Kategorie und es muss weiter nichts getan werden. Erhalte ich keine Inhalte, ist die Kategorie leer und ich schreibe CSS-Code in den Header um den Menueintrag unsichtbar zu machen.

Das Ganze funktioniert einwandfrei, hat jedoch einen kleinen Schönheitsfehler. Es wird nicht der Code für den Menueintrag entfernt, sondern lediglich die Anzeige unterbunden. Das heisst, das Layout passt sich nicht an. Je nach Darstellung im Theme kann dies zu einem unschönen Ergebnis führen.

In diesem Beispiel wird auch Code in den Header geschrieben, wenn Beiträge vorhanden sind, um den Menueintrag hervorzuheben.

Welche Klassen im Theme angesprochen werden, muss von Fall zu Fall eruiert werden. Jeder Menueintrag hat seine eigene Klasse.

Schreibe eine Antwort

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.