为 Wordpress 中的每个父页面创建一个子菜单
Posted
技术标签:
【中文标题】为 Wordpress 中的每个父页面创建一个子菜单【英文标题】:Creating a submenu for every parent page in Wordpress 【发布时间】:2012-12-22 08:28:11 【问题描述】:我在 Wordpress 中拥有一个非常深的菜单结构,在某些页面中有 5 个级别。我需要的是当前页面上方每个父母的菜单。例如,如果我在这里:
Main / Sub / SubSub / SubSubSub 我想看看,在彼此之上:
所有主要项目的菜单 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 级或以下。我用这个位找到了祖先菜单(总是显示):
'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 程序员,所以创建自己的函数并不是一个真正的选择。非常感谢任何帮助
【问题讨论】:
这看起来更有希望,它会吐出上面的每个父级,试图将简单的标题更改为完整的菜单......不过,奋斗者还是很感激帮助。 wordpress.org/support/topic/get-parent-pages 【参考方案1】:差不多了,我仍然需要循环 $howdeep > 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>';
?>
【讨论】:
以上是关于为 Wordpress 中的每个父页面创建一个子菜单的主要内容,如果未能解决你的问题,请参考以下文章
WordPress主题制作:子主题(Child Theme)