WordPress id van parent menu item opzoeken

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.

  1. Parent menu item
    1. Sub menu item
      1. Sub 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;
}

6 reacties

Laat een reactie achter

Je e-mailadres zal niet worden gepubliceerd. vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.