Функция типа is_page (), но возвращает true, если на любой подстранице данной страницы

В моем заголовке я использую этот код:

if(is_page("stores")) { // Do something } 

Я запускаю некоторый код, если в stores страницы, но то, что я хочу сделать, это запустить этот код, если страница stores или любая страница, являющаяся вспомогательной страницей магазинов. Не только это, но и рекурсивно, поэтому, если мы находимся на вспомогательной странице stores код все еще работает.

Solutions Collecting From Web of "Функция типа is_page (), но возвращает true, если на любой подстранице данной страницы"

При использовании довольно постоянных ссылок я просто проверяю запрос;

 if ( preg_match( '#^stores(/.+)?$#', $wp->request ) ) { // away we go! } 

Никаких дополнительных запросов БД, небольших вычислений и работает прямо по дереву!

Тестирование раздела подстраниц статьи «Условные теги» в Codex имеет пример кода, который использует get_post_ancestors() для извлечения родительского дерева и циклов через него с проверкой.

Удобная небольшая функция

  function is_child_of($parent) { global $post; if ( $post->post_parent == $parent){ return true }else{ $curent_parent = $post->post_parent; $dec = false; while ($curent_parent > 0){ $p = get_post($curent_parent); $curent_parent = $p->post_parent; if ($curent_parent > 0){ if ($curent_parent == $parent){ return true; } } } return false; } 

Использование: проверьте, является ли текущий дочерний элемент страницы с идентификатором 22

 if (is_child_of(22)){ //its a child of 22 }