Php 让wordpress wp_列表_页面只列出相关的子项(非常困难)

Php 让wordpress wp_列表_页面只列出相关的子项(非常困难),php,wordpress,Php,Wordpress,这是为你们中最聪明的人准备的: 我构建了一个巨大的动态子页面列表器 我有3个级别,下面是一个示例: 母公司 孩子 子代 子代 孩子 孩子 子代 子代 以下是it需要的工作方式: 在父对象上时,显示以下内容: 父级(当前) 孩子 孩子 孩子 单击具有子项的子项时,需要显示以下内容: 母公司 子级(当前) 子代 子代 孩子 孩子 (如果用户进入子级,将显示相同的内容) 当我遇到麻烦时,我会使用wp\u list\u pages生成列表和深度,以便在需要时显示sub

这是为你们中最聪明的人准备的:

我构建了一个巨大的动态子页面列表器

我有3个级别,下面是一个示例:

  • 母公司
    • 孩子
      • 子代
      • 子代
    • 孩子
    • 孩子
      • 子代
      • 子代
以下是it需要的工作方式:

在父对象上时,显示以下内容:

  • 父级(当前)
    • 孩子
    • 孩子
    • 孩子
单击具有子项的子项时,需要显示以下内容:

  • 母公司
    • 子级(当前)
      • 子代
      • 子代
    • 孩子
    • 孩子
(如果用户进入子级,将显示相同的内容)

当我遇到麻烦时,我会使用
wp\u list\u pages
生成列表和深度,以便在需要时显示sub,问题是,它会给我堆栈中的所有sub,即使我只需要显示当前页面的sub(或当前页面的祖先的sub,这将是树中的第一个子元素),而隐藏其他sub,给所有的孩子看

因此,它没有显示上面的列表,而是给出了完整的列表:

  • 母公司
    • 子级(当前)
      • 子代
      • 子代
    • 孩子
    • 孩子
      • 子代
      • 子代
现在我可以很容易地得到当前同级的列表,可以得到当前的子级,它在树中的位置,没有问题,我甚至可以通过分离
wp_列表_页面
output来解决这个问题,并将当前页面放在顶部,它的子页面就在它下面,其他非打开页面在它下面,但这不是目标

那么,有没有人能弄明白这一点

另请注意:我提出了一个不太符合犹太规范的jQuery解决方案(使用javascript删除不必要的元素),问题仍然存在,我们能让wordpress在没有javascript攻击的情况下完成这项工作吗

$("#side_nav li").not(".current_page_item").not(".current_page_ancestor").not(".current_page_parent").has("ul.children").children("ul.children").remove();

您可以使用
get_children
来实现它

我通常在functions.php中放入一个函数,以便按照正确的顺序进行无意识检索,如

function get_kids($id) {
  get_children('post_parent='.$id.'&order=ASC&orderby=menu_order&post_status=publish')
}

这将是一个单独的列表,我知道这个功能。我想要的是:只显示同一wp_列表_页面中当前的子页面。