【问题标题】:Wordpress Sub Navigation Menus in Sidebar侧边栏中的 Wordpress 子导航菜单
【发布时间】:2012-06-18 21:11:23
【问题描述】:

我有一个具有以下结构的 WordPress 网站

Page 1
   Sub Page 1
   Sub Page 2
Page 2
   Sub Page 1
      Sub-Sub Page 1
      Sub-Sub Page 2
      Sub-Sub Page 3
   Sub Page 2
   Sub Page 3

当在任何子子页面上时,我想在侧边栏导航中列出子页面。

使用下面的代码作为起点...这不适用于子子页面,因为它在导航中显示子子页面而不是子页面。

<?php
  if($post->post_parent)
  $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
  else
  $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
  if ($children) { ?>
  <ul>
  <?php echo $children; ?>
  </ul>
<?php } ?>

谢谢

布雷特

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    搞定了。这是最终代码(从http://cssglobe.com/post/5812/wordpress-find-pages-top-level-parent-id 提取,稍作修改)

    <?php
    
    if ($post->post_parent) {
        $ancestors=get_post_ancestors($post->ID);
        $root=count($ancestors)-1;
        $parent = $ancestors[$root];
    } else {
        $parent = $post->ID;
    }
    
    $children = wp_list_pages("title_li=&child_of=". $parent ."&echo=0&depth=1");
    
    if ($children) { ?>
    <ul>
    <?php echo $children; ?>
    </ul>
    <?php } ?>
    

    【讨论】:

      【解决方案2】:

      布雷特,

      您必须检查是否有后祖父母,然后使用后祖父母的 id。您可能可以使用get_post_ancestors() function 找出有多少祖先,然后相应地调整您的代码。

      【讨论】:

        猜你喜欢
        • 2014-07-03
        • 1970-01-01
        • 2016-05-21
        • 1970-01-01
        • 2017-08-29
        • 1970-01-01
        • 2022-11-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多