Intereting Posts
Как создать поля Repeater с помощью дополнительных пользовательских полей? Уведомление почты о высоком использовании памяти? Переопределить индекс с помощью настраиваемой страницы PHP Когда вы регистрируете боковую панель в WordPress, можно ли выбрать, в каком порядке она появляется в администраторе Убедитесь, что пользовательский тип сообщения уже создан Как сделать запрос только на определенной странице администратора? Как настроить условные обозначения в шаблонах страниц? Добавьте мета-поле в список результатов для настраиваемого типа сообщений Изменение основной функции WordPress без взлома ядра Как показать текущий контент в заголовке? Новый флажок в пользовательском типе сообщений не сохраняет данные Атрибут WP-CLI: подключение с помощью прокси-сервера ssh Как конвертировать контактную форму 7 в сообщение после отправки? Как я могу определить, какие файлы (ы) изменить из просмотра исходного кода Пользовательский вариант галереи

Функция возвращает true, если текущая страница имеет дочерние страницы

Я пытаюсь создать простую функцию для выполнения «теста состояния». Цель – проверить и посмотреть, просматривается ли текущая страница на каких-либо дочерних страницах или нет. Использование этого для изменения макета для размещения дочерних страниц. Следующий код кажется, что он должен работать, но, увы, нет кубиков.

Кто-нибудь видит, что мне не хватает?

function is_subpage() { global $post; // load details about this page if ( is_page() && $post->post_parent ) { // test to see if the page has a parent return true; // return true, confirming there is a parent } else { // there is no parent so ... return false; // ... the answer to the question is false } 

}

Solutions Collecting From Web of "Функция возвращает true, если текущая страница имеет дочерние страницы"

Вышеупомянутая функция проверяет, является ли страница дочерней страницей какой-либо другой страницы, а не имеет ли она детей.

Вы можете проверить для детей текущей страницы следующим образом:

 function has_children() { global $post; $children = get_pages( array( 'child_of' => $post->ID ) ); if( count( $children ) == 0 ) { return false; } else { return true; } } 

Дальнейшее чтение:

  • wp codex: get_pages
  • Руководство пользователя php: count

Вот версия для любого типа сообщения, если вы используете пользовательский тип сообщения

 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(); }