Intereting Posts
Как добавить шаблоны страниц в категории Wp_localize_script из Shortcode Получение нескольких пользовательских post_types в одном URL-адресе Добавить имя прикрепленного файла и URL-адрес в Javascript Изменение темы удаляет содержимое страницы в главном редакторе сообщений панели мониторинга wp_get_attachment_image_src всегда возвращает полноразмерное изображение Divi Child Тема не отображается в «Темы» Типы почтовых сообщений WordPress? Автоматическое отображение имени категории с использованием кода в файле functions.php Пользовательский тип сообщения, используемый для часто задаваемых вопросов Аккордеон Автоматизация отдельных шагов установки WordPress $ wpdb-> base_prefix не получает родительский префикс сайта в многопользовательском режиме Unix отметка времени для комментариев Как переопределить функцию, когда она отсутствует в functions.php используя плагин проверки темы для удаления waring и ошибок из моей темы

Получить родительские детские страницы

У меня есть этот код:

<?php global $post; $children = get_pages( array( 'child_of' => $post->ID ) ); if ( is_page() && $post->post_parent > 0 ) { // Is subpage // Here I want to get all sibling from the current page } else { // Is no subpage if( count( $children ) == 0 ) { // Has no children } else { // Has children echo '<div class="subnav-header">'; echo '<div class="subnav-table">'; echo '<ul>'; foreach($children as $child){ ?> <li><a href="<?php echo $child->guid; ?>"><?php echo $child->post_title; ?></a></li> <?php } echo '</ul>'; echo '</div>'; echo '</div>'; } } ?> 

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


Итак, короче говоря, я хочу сделать следующее:

  • Когда текущая страница является подстраницей, проверьте, нет ли на ней какой-либо сестры.
  • Если страница имеет родной брат, отобразите их в цикле foreach.

Решил это, и решил, что лучше всего напишу свой ответ здесь, так как люди могут учиться на нем 🙂

 <?php global $post; $children = get_pages( array( 'child_of' => $post->ID ) ); $siblings = get_pages( array( 'child_of' => $post->post_parent ) ); // or, if you want to exclude the current page: // $siblings = get_pages( array( 'child_of' => $post->post_parent, 'exclude' => $post->ID ) ); if ( is_page() && $post->post_parent > 0 ) { // Is subpage if( count( $siblings ) == 0 ) { // Has no siblings } else { // Has siblings echo '<div class="subnav-header">'; echo '<div class="subnav-table">'; echo '<ul>'; foreach($siblings as $sibling){ ?> <li><a href="<?php echo $sibling->guid; ?>"><?php echo $sibling->post_title; ?></a></li> <?php } echo '</ul>'; echo '</div>'; echo '</div>'; } } else { // Is no subpage if( count( $children ) == 0 ) { // Has no children } else { // Has children echo '<div class="subnav-header">'; echo '<div class="subnav-table">'; echo '<ul>'; foreach($children as $child){ ?> <li><a href="<?php echo $child->guid; ?>"><?php echo $child->post_title; ?></a></li> <?php } echo '</ul>'; echo '</div>'; echo '</div>'; } } ?>