我有一个名为“带子服务”的父页面,每个服务子页面中都有子页面。
在第一级子页面上,我想在中显示它下面的所有页面。当我点击其中一个页面时,我希望显示相同的菜单,所有页面都与我显示的页面级别相同。
我目前有以下代码:
global $post;
$subpages = wp_list_pages( array(
\'echo\'=>0,
\'title_li\'=>\'\',
\'depth\'=>1,
\'child_of\'=> ( $post->post_parent == 0 ? $post->ID : $post->post_parent)
));
if ( !empty($subpages) ) {
?>
<div class="services-sub-menu">
<?php
if ( $post->post_parent != 0 ) {
echo \'<p class="parent-link"><a href="\'. get_permalink($post-
>post_parent) .\'"><em>\'. __(\'Back to\') .\' \'. get_the_title($post-
>post_parent) .\'</em></a><p>\';
}
echo \'<ul>\';
echo $subpages;
echo \'</ul>\';
?>
</div>
<?php
} else {
}
这适用于显示当前级别子项的情况。然而,在第一级儿童中,我想显示下面的儿童,在第二级儿童中,我想显示相同级别的儿童。
提前感谢您的帮助,非常感谢。
最合适的回答,由SO网友:Alexander Holsgrove 整理而成
您需要首先计算出您所在的页面级别,以便知道要传递给child_of
的参数wp_list_pages
. 尝试一下:
global $post;
$page_level = 0;
$post_parent = null;
// Work out what page level we\'re on
if($post->post_parent > 0) {
$post_parent = get_post($post->post_parent);
$page_level = ($post_parent->post_parent == 0 ? 1 : 2);
}
// Updated with page IDs
echo \'Current page: \'.$post->ID.\'<br />\';
echo \'Current parent: \'.$post->post_parent.\'<br />\';
echo \'Current level\'.$page_level.\'<br />\';
echo \'Loading pages from \'.($page_level == 2 ? $post->post_parent : $post->ID).\'<br />\';
$subpages = wp_list_pages(array(
\'echo\' =>0,
\'title_li\' =>\'\',
\'depth\' =>1,
\'child_of\' => ($page_level == 2 ? $post->post_parent : $post->ID)
));
if ( !empty($subpages) ) {
?>
<div class="services-sub-menu">
<?php
if ( $post->post_parent != 0 ) {
echo \'<p class="parent-link"><a href="\'. get_permalink($post->post_parent) .\'"><em>\'. __(\'Back to\') .\' \'. get_the_title($post->post_parent) .\'</em></a><p>\';
}
echo \'<ul>\';
echo $subpages;
echo \'</ul>\';
?>
</div>
<?php
} else {
}