Стратегия обработки иерархических страниц с пустым родительским контентом

Предположим, что у меня есть следующая структура страницы

/about-us (used as a parent holder only) /about-us/history (real page) /about-us/team (real page) /about-us/industry (real page) 

На странице « about-us » нет контента, но он необходим для двух целей

  1. Разрешить иерархическую структуру в URL-адресе
  2. Разрешить иерархическую структуру в меню

Но одна из проблем заключается в том, когда пользователь вводит « / about-us », тогда они будут вводить пустую страницу с неконтекстом.

Итак, должен ли я автоматически пересылать пользователя по URL-адресу « / about-us / history » по умолчанию?

Или это обычный способ обработки иерархических страниц?

Solutions Collecting From Web of "Стратегия обработки иерархических страниц с пустым родительским контентом"

Я использую две стратегии здесь …

1) – это простое перенаправление для первого ребенка (с помощью меню) page-redirect.php

 <?php /* * Template Name: Redirector * Description: Empty Holder (redirect page) */ $rp = new WP_Query(array( 'post_parent' => get_the_id(), 'post_type' => 'page', 'order' => 'asc', 'orderby' => 'menu_order' )); if ($rp->have_posts()) while ( $rp->have_posts() ) { $rp->the_post(); wp_redirect(get_permalink(get_the_id())); exit; } wp_redirect(dirname(home_url($wp->request))); exit; 

2) создание меню родителя со ссылками на детей (в качестве примера – http://unu.edu/about )

Создайте новый файл с именем page-parent.php и введите следующий код в новый файл:

 <?php /* * Template Name: Parent Menu * Description: Redirects empty parent page to first child page */ # Parent menu goes to first child page # askwpgirl.com/redirect-parent-page-first-child-page-wordpress $child_page = get_pages( "child_of=" . $post->ID . "&sort_column=menu_order" ); if ( $child_page ) { $parent_page = $child_page[0]; wp_redirect( get_permalink( $parent_page->ID ) ); } 

Затем поместите page-parent.php в корневой каталог вашей дочерней темы, например:

 /wp-content/themes/child-theme 

После этого вы увидите новое шаблонное Parent Menu в шаблоне.

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