Dadurch werden einfach alle Kategorien in einer Hierarchie und mit jedem verankerten Element aufgelistet.
Meine Kategorien sind eigentlich so aufgebaut:
Parent
-> Child
-> Grandchild
-> Great Grandchild
Mein Problem ist, dass ich nur möchte, dass die Urenkel Anker haben. Ich möchte nicht, dass Eltern, Kind oder Enkel Anker haben.
Irgendwelche Vorschläge würden geschätzt.
Möchten Sie nicht, dass Eltern, Kind und Enkel überhaupt auftauchen? oder wollen sie einfach nicht verlinkt haben? Sie müssten wahrscheinlich einen benutzerdefinierten Walker verwenden, um die Liste zu rendern und die Vorfahren des aktuellen Elements zu überprüfen (wenn es 3 hat – zeigen Sie es, andernfalls nicht). Wenn Sie die Links alle zusammen ausblenden, können Sie alternativ CSS verwenden. Das wird helfen scribu.net/wordpress/extending-the-category-walker.html
– Lleo
31. Dezember 2012 um 6:58 Uhr
Sie könnten Links einfach mit reinem CSS deaktivieren, ohne den PHP-Code zu ändern. Überprüfen Sie den folgenden Code, er ändert den Mauszeiger, deaktiviert die Verknüpfungsfunktion und blendet den Unterstreichungsstil aus:
.cat-item a, .cat-item .cat-item .cat-item .cat-item a {
cursor: default;
pointer-events: none;
text-decoration: none;
}
.cat-item .cat-item .cat-item a {
cursor: pointer;
pointer-events: auto;
text-decoration: underline;
/* also add here any special style for grandchildren categories */
}
Das Ergebnis wird genau so sein, wie Sie es wünschen, nur die Kategorie Enkel scheint verankert zu sein.
Hoffe das beantwortet deine Frage
cmptrgeekken
Wie von Lleo Holmes in den Kommentaren erwähnt, besteht der beste Ansatz darin, eine benutzerdefinierte zu erstellen Walker-Klasse um diese Funktionalität zu implementieren. Ich habe mich mal damit beschäftigt und bin zu folgendem Ergebnis gekommen:
Dies erweitert die Walker_Category Klasse, damit wir anrufen können parent::start_el() um den Link herzustellen, wenn er in der richtigen Tiefe ist. Der Konstruktor akzeptiert ein Array von Tiefen, das die Ebenen enthält, auf denen Sie Links anzeigen möchten. Jede Tiefe, die außerhalb dieses Arrays liegt, würde als Klartext gerendert werden. Notiere dass der else Code wurde entnommen Walker_Category::start_eldaher könnte dies in zukünftigen Versionen brechen, wenn die Basisklasse jemals geändert wird.
Die obige Klasse kann durch Aufrufen verwendet werden wp_list_categories wie:
Möchten Sie nicht, dass Eltern, Kind und Enkel überhaupt auftauchen? oder wollen sie einfach nicht verlinkt haben? Sie müssten wahrscheinlich einen benutzerdefinierten Walker verwenden, um die Liste zu rendern und die Vorfahren des aktuellen Elements zu überprüfen (wenn es 3 hat – zeigen Sie es, andernfalls nicht). Wenn Sie die Links alle zusammen ausblenden, können Sie alternativ CSS verwenden. Das wird helfen scribu.net/wordpress/extending-the-category-walker.html
– Lleo
31. Dezember 2012 um 6:58 Uhr