WordPress – obsah na stránce a jejích potomcích

Problém

Chceme zobrazit nějaký konkrétní obsah na stránce a všech jejích potomcích. Například obrázek, který bude shodný pro všechny stránky, které tématicky zapadají do jedné kategorie webu. To znamená na rodičovské stránce a zároveň všech jejích podstránkách.

Řešení

Nejdříve je třeba vyrobit funkci, která zjistí kořenového rodiče podstránky. Tu vložíme do souboru functions.php. Vypadat bude následovně:

function get_root_parent($page_id)
{
global $wpdb;
$parent = $wpdb->get_var("SELECT post_parent FROM $wpdb->posts WHERE post_type='page' AND ID = '$page_id'");
if ($parent == 0)

return $page_id;

else
return get_root_parent($parent);
}

Rekurzivně projde všechny rodiče až po toho posledního, kořenového.

A nakonec v místě, ve kterém chceme v šabloně zobrazovat obsah zavoláme s příslušným IDčkem nějakou podobnou konstrukci

<?php if ($post->ID == 4 || get_root_parent($post->ID) == 4) { ?>
// obsah
<?php } ?>



Leave a Reply