使用具有侧边栏菜单的wordpress制作网站,该菜单会自动创建具有这些设置的页面列表。显示所有父页面。显示当前页面的孩子和父母。这种结构需要在所有深度上显示。
问题。需要建议如何获取侧边栏菜单以显示页面,如下例所示。 一切都是由PHP,CSS手工完成的。插件是不可能的。
Example 1: (Current page is sub page 3):
-page1
-sub page 1
-sub page 2
-sub page 3
-sub article 1
-sub article 2
-page2
-page3
-page4
Example 2 (current page is page1):
-page1
-sub page 1
-sub page 2
-sub page 3
-page2
-page3
-page4
下面是示例我们如何管理现在显示的页面以及当前拥有的PAGE.PHP和FUNCTIONS.PHP中的代码。代码处于这种状态,它显示了该当前“深度”的所有页面。
Like this (if current page is one of parents:
-page1
-sub page 1
-sub page 2
-sub page 3
-sub article 1
-sub article 2
-page2
-sub page 1
-sub page 2
-sub article 1
-page3
-sub page 1
-sub page 2
-page4
-sub page 1
-sub page 2
Or if current page is sub page it shows like this (shows no parents):
-sub page 1
-sub page 2
-sub page 3
page.php
<?php
if ($post->post_parent) {
$page = $post->post_parent;
} else {
$page = $post->ID;
}
$children = wp_list_pages(array(
'child_of' => $page,
'echo' => 0,
'title_li' => ''
));
if ($children) {
echo "<ul>\n".$children."</ul>\n";
}
?>
functions.php
function wpb_list_child_pages() {
global $post;
if ( is_page() && $post->post_parent )
$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' .
$post->post_parent . '&echo=0' );
else
$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' .
$post->ID . '&echo=0' );
if ( $childpages ) {
$string = '<ul>' . $childpages . '</ul>';
}
return $string;
}
add_shortcode('wpb_childpages', 'wpb_list_child_pages');