Функция для проверки наличия дочерних страниц у текущей страницы
7 дек. 2011 г., 02:44:33
Просмотры: 19K
Голосов: 10
Я пытаюсь создать простую функцию для проверки статуса. Цель - проверить, есть ли у текущей просматриваемой страницы дочерние страницы или нет. Использую это для изменения макета в зависимости от наличия дочерних страниц. Следующий код, кажется, должен работать, но увы, не срабатывает.
Кто-нибудь видит, что я упустил?
function is_subpage() {
global $post; // загружаем данные о текущей странице
if ( is_page() && $post->post_parent ) { // проверяем, есть ли у страницы родитель
return true; // возвращаем true, подтверждая наличие родителя
} else { // если родителя нет, то ...
return false; // ... ответ на вопрос - false
}
}

Brian
814
Все ответы на вопрос
2
0
Ваша функция выше проверяет, является ли страница дочерней по отношению к другой странице, а не проверяет, есть ли у неё дочерние страницы.
Вы можете проверить наличие дочерних страниц у текущей страницы следующим образом:
function has_children() {
global $post;
$children = get_pages( array( 'child_of' => $post->ID ) );
if( count( $children ) == 0 ) {
return false;
} else {
return true;
}
}
Дополнительные материалы:

Johannes Pille
11.1K
7 дек. 2011 г. 03:08:07
0
Вот версия для любого типа записи, если вы используете пользовательский тип записи
function has_children($post_ID = null) {
if ($post_ID === null) {
global $post;
$post_ID = $post->ID;
}
$query = new WP_Query(array('post_parent' => $post_ID, 'post_type' => 'any'));
return $query->have_posts();
}

Dmitry Chuba
201
12 мая 2016 г. 21:18:00
Похожие вопросы
2
ответов
2
ответов