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