菜单编辑器中的子页未嵌套

时间:2017-10-25 作者:LoganGoesPlaces

我正在为一个公立学区建立一个网站。我们所有的学校建筑都有相同名称的公共页面(即图书馆、护士、出勤等),这些页面嵌套在其父建筑的页面下。在尝试更新我们的网站导航时,我注意到,出于某种原因,菜单->页面->查看所有区域没有将建筑页面嵌套在其建筑下,而是按字母顺序列出它们。

Pages not nesting

奇怪的是,我在站点的其他区域设置了嵌套页面,它们确实在列表中嵌套自己
Pages that are nesting

我错过什么了吗?我找不到嵌套显示正确的页面的方式与嵌套显示不正确的页面的方式有什么不同。我仔细检查了嵌套页面,它们将其建筑列为父级。

我觉得这非常令人沮丧。除非我进入并编辑特定建筑下的所有页面,将其强制加入最近的列表,否则我不知道哪个页面是哪个页面。

我不想在每个页面标题中添加建筑名称

  • 这些页面嵌套在3层深(学校->建筑名称->页面名称)
  • 如果没有办法修复列表的显示方式,是否有办法将父页面的名称添加到页面名称中?还是另一种构建菜单的方法?

    3 个回复
    最合适的回答,由SO网友:LoganGoesPlaces 整理而成

    对于那些在将来遇到这种情况的人来说,这个问题是由于分页和家长出现在与孩子不同的页面上。从“查看全部”菜单中删除分页修复了嵌套。

    有一个ticket 7年前开放,报告此错误,但尚未解决。在评论中,用户danburzo建议添加以下过滤器,这为我纠正了这个问题。

    <?php
      add_filter( \'nav_menu_meta_box_object\', array( $this, \'disable_pagination_in_menu_meta_box\' ) );
    
      function disable_pagination_in_menu_meta_box($obj) {
        $obj->_default_query = array(
          \'posts_per_page\' => -1
        );
        return $obj;
      }
    ?>
    

    SO网友:Isma\'el

    是的,这很烦人,我发现只有选中[主导航]选项时才会发生这种情况,进入主题定制菜单;取消选中此选项,您就会没事。

    SO网友:jaswrks

    你要找的功能是wp_list_pages().

    请特别注意该页上记录的这两个论点。

    • depth 与您的问题最相关。

      “depth”(int)要包含在生成的列表中的页面层次结构中的级别数。接受-1(任意深度)、0(所有页面)、1(仅限顶级页面)和n(指定n个深度的页面)。默认值0。

      还有child_of, 允许您选择仅列出您拥有的特定父页面的子页面;i、 例如,特定建筑的子页面。

      “child\\u of”(int)按ID仅显示单个页面的子页面。默认值为0(所有页面)。


    Tip: 另一种选择是结合使用get_pages()wp_list_pages() 如所示example here. 在这两者之间,您应该能够根据需要显示层次结构。

    结束

    相关推荐

    Problem with custom menus

    在菜单上,我说的是自定义菜单,我有一个带有几列的页脚,每列都有一个项目列表,每列菜单都需要从wp admin上的菜单选项进行更新,所以我创建了关于函数的部分。调用菜单并在页脚上添加每个菜单的php。php文档,类似于:<?php wp_nav_menu( array(\'menu\' => \'f-1\', \'menu_class\' => \'\', \'container\' => \'nav\' )); ?> <?php wp_nav_menu( arr