Funkce get_post_ancestors je další z funkcí, pro manipulaci s posty. Při jejím použití vám vrátí pole všech rodičovských (nadřazených) postů, v závislosti na post ID.
Použití
get_post_ancestors( $post );
Parametry
Funkce má pouze jeden parametr $post a tím je buď ID postu, nebo object $post.
Jak jsem psal již výše, funkce prací pole ID všech rodičovských postů, nebo prázdnou hodnotu, pokud není nalezen žádný ancestor. Jako první v poli je nejbližší rodičovský post a posledním je nejvyšší nadřazený.
Příklady
Tento příklad vrátí nejvýše postavenou nadřazenou stránku pro aktuální stránku a získá její slug, pro body class.
$class = '';
if( is_page() ) {
global $post;
$parents = get_post_ancestors( $post->ID );
$id = ($parents) ? $parents[count($parents)-1]: $post->ID;
$parent = get_page( $id );
$class = $parent->post_name;
}
Podobným způsobem dostaneme například náhledový obrázek nejvýše položené stránky, k aktuální.
global $post;
$parents = get_post_ancestors( $post->ID );
$id = ($parents) ? $parents[count($parents)-1]: $post->ID;
if(has_post_thumbnail( $id )) {
get_the_post_thumbnail( $id, 'thumbnail');
}
Kód příkladů je převzat z WordPress.org