我所拥有的是Wordpress中非常深的菜单结构,在某些页面中有5个级别。我需要的是当前页面上方每个父母的菜单。例如,如果我在这里:
Main / Sub / SubSub / SubSubSub 我想看到彼此之上:
我正在使用wp_list_pages函数:
<?php
if ( $post->post_parent ) {
$args = array(
'child_of' => $post->ID,
'depth' => 1,
'sort_column' => 'post_date',
'sort_order' => 'DESC',
'title_li' => ''
);
echo '<nav id="subnav"><ul>';
wp_list_pages( $args );
echo '</ul></nav>';
} ?>
但我不知道我是在2级还是2级。我用这个位找到了祖先菜单(总是显示):
'child_of' => get_post_top_ancestor_id()
但我无法让它为每个不是最顶级祖先的其他父母列出一个菜单。我试着修改这段代码: https://wordpress.stackexchange.com/questions/15141/list-wordpress-custom-menus-active-parent-levels-children-as-separate-menu
循环遍历所有父母,如: http://wordpress.org/support/topic/get-and-display-parent-pages-of-a-menu
主要问题是我不是一个PHP程序员,所以创建我自己的函数并不是一个真正的选择。非常感谢任何帮助
答案 0 :(得分:0)
几乎在那里,我仍然需要遍历$深度&gt; 2,找到正确的水平......如果有人知道怎么做......
<?php
$id = 0;
$thispost = get_post($id);
$howdeep = 1;
$parentID = $thispost->post_parent;
while( $parentID != 0 ) {
$parent = get_post($parentID);
$howdeep++;
$parentID = $parent->post_parent;
}
if ( $howdeep == 2 ) {
$args = array(
'child_of' => $post->ID,
'depth' => 1,
'sort_column' => 'post_date',
'sort_order' => 'DESC',
'title_li' => ''
);
echo '<nav id="subsubnav"><ul>';
wp_list_pages( $args );
echo '</ul></nav>';
} else if ( $howdeep == 3 ) {
$args = array(
'child_of' => $post->post_parent,
'depth' => 1,
'sort_column' => 'post_date',
'sort_order' => 'DESC',
'title_li' => ''
);
echo '<nav id="subsubnav"><ul>';
wp_list_pages( $args );
echo '</ul></nav>';
} ?>