处理具有空父内容的分层页面的策略

时间:2013-10-27 作者:Yoga

假设我有以下页面结构

/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 “,但有两个目的

允许url中的层次结构允许菜单中的层次结构,但问题之一是用户键入“/about-us“然后他们将进入一个没有内容的空白页面。

那么,我应该自动将用户转发到url吗,比如说“/about-us/history“默认情况下?

还是这是处理分层页面的常见方式?

2 个回复
SO网友:Oleg Butuzov

我在这里使用两种策略。。。

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)

SO网友:Ethan O\'Sullivan

创建一个名为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 在模板选项中。

使用新模板保存父菜单,每当尝试直接访问父页面时,它都会重定向到第一个子页面。

结束