So ich habe jetzt eine Lösung.
Aber schön ist was anderes!
Vielleicht hat jemand da eine elegantere Lösung:
PHP
<?php
// Ermittelt die ID der aktuellen (aufgerufenen) Seite
global $post;
$id_aktueller_seite = $post->ID;
// Name des ANGELEGTEN (registrierte) Menüs, deren Unterseite(n) man ermitteln will
// Der Name ist NICHT der selbst gewählte Name des Menüs!
$menu_name = 'primary';
// ermittelt alle verfügbaren (registrierten) Menüs
$locations = get_nav_menu_locations();
if ( ($locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ]) ) {
$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
// Ermittelt Alle Seiten die dem (registrierten) Menü zugeordnet sind
$menu_items = wp_get_nav_menu_items($menu->term_id);
// Ermittelt die Objekt ID der "Oberseite" anhand der aktuellen Seiten ID ($id_aktueller_seite)
foreach ( (array) $menu_items as $key => $menu_item ) {
if ($menu_item->object_id == $id_aktueller_seite) {
$id_ober_seite = $menu_item->ID;
break;
}
}
// Beginn unserer selbsterzeugten Unterseitennavigation
$unterseiten_liste = '<ul id="menu-' . $menu_name . '">';
foreach ( (array) $menu_items as $key => $menu_item ) {
// ermittelt, ob eine Seite bzw. Objekt einer Oberseite zugeordnet ist
if ($menu_item->menu_item_parent == $id_ober_seite) {
$title = $menu_item->title;
$url = $menu_item->url;
$unterseiten_liste .= '<li><a href="' . $url . '">' . $title . '</a></li>';
}
}
$unterseiten_liste .= '</ul>';
} else {
$unterseiten_liste = 'Es gibt keine Unterseiten!';
}
echo $unterseiten_liste; // Ausgabe der Unterseitennavigation
?>
Alles anzeigen