Voor een WordPress website had ik een stukje code nodig die mij het id gaf van het parent menu item waartoe de huidig getoonde pagina behoort. De website had een menu met drie niveau’s.
- Parent menu item
- Sub menu item
- Sub sub menu item
- Sub menu item
Met deze code kan je vanuit een sub menu pagina de titel van de pagina gekoppeld aan het parent menu item ophalen. Het werkt zelfs ook bij een sub sub menu pagina. Naast de titel kan je ook alle andere gegevens van de parent menu item pagina ophalen omdat het id bekend is.
De code geeft dus altijd het id terug van de pagina op het hoogste niveau in de menustructuur. Je moet dan natuurlijk wel in WordPress een menu gedefinieerd hebben met de verschillende niveau’s.
Onderstaande functie plaats je natuurlijk in het functions.php bestand van je thema of childthema.
/** * Return the id of the parent. * * The parent will be the page/menu item on level 0 of the navigation. * * @param object $post * @return int */ function theme_get_parentid($post) { $parentId = $post->post_parent; $parentPost = get_post($parentId); $grandparentId = $parentPost->post_parent; if (!empty($grandparentId)) { $id = (int)$grandparentId; } elseif (!empty($parentId)) { $id = (int)$parentId; } else { $id = $post->ID; } return $id; }
Dank voor de duidelijke uitleg!
Gr.
Steven
Net wat ik nodig had, thanks!
Zijn er nog andere manieren om dat te bereiken? Ik heb zelf erg weinig ervaring met php..
De vraag is dan waarom heb je het parent id nodig?
Bovenstaand voorbeeld gaat ervan uit dat je dit ergens nodig hebt in een thema.
Precies de tip die ik zocht, dankjewel!
Leuk artikel