首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出子页面,除非不存在,否则在WordPress中列出同级页

问列出子页面,除非不存在,否则在WordPress中列出同级页
EN

Stack Overflow用户
提问于 2013-08-22 17:48:02
回答 1查看 1.3K关注 0票数 0

我有一个这样的导航结构:

  • 首页
  • 关于
    • 团队
    • 我们的使命

​

  • 地点
    • 芝加哥
    • 纽约
    • 洛杉矶

​

  • 服务
  • 与我们联系

如果我查看的是有关页面,我希望侧边栏显示:

  • 团队
  • 我们的使命

如果我查看的是“服务”页面,我希望侧边栏显示:

  • 首页
  • 关于
  • 位置
  • 服务
  • 与我们联系

这是我目前使用的代码。我如何修改它,使它以我想要的方式工作?

代码语言:javascript
复制
<?php
    global $wp_query;
    if( empty($wp_query->post->post_parent) ) {
        $parent = $wp_query->post->ID;
    } else {
        $parent = $wp_query->post->post_parent;
    }
    $children = get_pages('child_of='.$parent);
    if( count( $children ) > 0 ) {
?>
    <ul>
        <?php wp_list_pages ("&title_li=&child_of=$parent"); ?>
    </ul>
<?php } ?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-23 01:08:51

这要么直接做到,要么至少向您展示如何:

当查看有子页(或其子页)时,它只显示该父页的子页。

  • 当访问主页时,所有顶级页面都列在侧栏中。
  • 当访问没有子级的顶级页面时,将列出所有顶级页面。
  • 当使用子页面访问顶级页面时,只列出子程序页和子代页。
  • 当访问子页面时,只列出该父页的子页和子代页。

代码语言:javascript
复制
<?php
$output = wp_list_pages('echo=0&depth=1&title_li=<h2>Top Level Pages </h2>' );
if (is_page( )) {
  $page = $post->ID;
  if ($post->post_parent) {
    $page = $post->post_parent;
  }
  $children=wp_list_pages( 'echo=0&child_of=' . $page . '&title_li=' );
  if ($children) {
    $output = wp_list_pages ('echo=0&child_of=' . $page . '&title_li=<h2>Child Pages</h2>');
  }
}
echo $output;
?>

来自:subpage

此方法利用了echo=0参数,该参数将结果作为字符串返回给变量。if ($children)测试现在起作用了,因为如果没有找到匹配项,wp_list_pages()将返回空值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18387418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档