Intereting Posts
конвертировать время в местное время WordPress Группировать / список / сортировать персонализированные сообщения типа post по дате в закладках из поля acp datepicker Переключить роли пользователей с помощью кнопки Зарегистрироваться / получить боковую панель? Имя страницы пользовательского таксономического архива пользовательского типа Почему мои выдержки не отображаются, если они явно не объявлены? конвертировать из одного сайта в многосайтовый (сетевой) с существующими субдоменами Отображение страниц показывает 404 после определенного количества страниц Как добавить 3 недели к функции the_time () Автоматически создавать набор сообщений по умолчанию для каждого нового зарегистрированного пользователя Вставляемая двойная кавычка при добавлении к _content Localhost load-scripts.php Ошибка 500 в Личном кабинете Получить мета-ключи пользовательских категорий Выберите несколько категорий из CPT для отображения в виджере Builder LayersWP Как выполнить поиск, введите данные из wp_postmeta?

Условный оператор для родительских, дочерних и внуковых страниц

Я пытаюсь выяснить, как настроить условный оператор, чтобы проверить, отображается ли родитель, ребенок или внук. Это то, что у меня есть до сих пор:

<?php if ( is_page( 'about' ) || '29' == $post->post_parent ) { //Start of the custom code... while(has_sub_field('site_slideshows','option')): ?> <!-- Closing the PHP tag --> <div class="slideshow-slide" style="background-image:url(<?php the_sub_field('site_slideshows_slide_image'); ?>)"> <div class="block-text" style="color: <?php the_sub_field('site_slideshows_slide_text_colour'); ?>;"><?php the_sub_field('site_slideshows_slide_text'); ?></div> </div> <?php //Opening the PHP tag again endwhile; } elseif ( is_page( 'contact' ) || '31' == $post->post_parent ) { //Start of the custom code... while(has_sub_field('two_site_slideshows','option')): ?> <!-- Closing the PHP tag --> <div class="slideshow-slide" style="background-image:url(<?php the_sub_field('two_site_slideshows_slide_image'); ?>)"> <div class="block-text" style="color: <?php the_sub_field('two_site_slide_text_colour'); ?>;"><?php the_sub_field('two_site_slideshows_slide_text'); ?></div> </div> <?php //Opening the PHP tag again endwhile; } ?> 

Это будет успешно проверять родительскую и дочернюю страницы, например, about странице и всех дочерних страницах about странице, но как мне настроить эти заявления, чтобы также включать страницы внуков? Любые предложения будут ценны.

Solutions Collecting From Web of "Условный оператор для родительских, дочерних и внуковых страниц"

Используйте get_post_ancestors( $post ) . Он возвращает массив идентификаторов сообщений. Идентификатор родителя – это первая запись, великий родитель – второй и т. Д.

 $ancestors = get_post_ancestors( $post ); if ( is_page( 'about' ) || in_array( '29', $ancestors ) ) { echo "This is About or one of its descendants"; } elseif ( is_page( 'contact' ) || in_array( '31', $ancestors ) ) { echo "This is Contact or one of its descendants"; }