将儿童和兄弟页面提升到一个级别[Wordpress]

时间:2017-12-11 11:46:36

标签: php wordpress

这是我的页面设置:

  • 第1页
    • Page 1.1
  • 第2页
    • 第2.1页
      • 第2.1.1页
    • 第2.2页

我想设置我的菜单,以便当您在第1页上看到该页面的子项时;第2页,您会看到该页面的子项。

当你进入1.1,2.1,2.2等时,你会看到该页面的兄弟姐妹。但是,棘手的部分是当你在2.1.1时,我想让你看到父母和叔叔/阿姨(?)页面(2.1,2.2等)。

有没有办法用wp_list_pages或wp_query或其他什么方法做到这一点?我感谢任何人的帮助。

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情。有点手册,但也许别人有更好的解决方案...

<?php
global $post;
//Get page parents
$ids = get_post_ancestors( $post );
//taken from Codex https://developer.wordpress.org/reference/functions/wp_list_pages/#comment-388
if ( $post->post_parent ) {
    $children = wp_list_pages( array(
        'title_li' => '',
        'child_of' => $post->post_parent,
        'echo'     => 0
    ) );
} else {
    $children = wp_list_pages( array(
        'title_li' => '',
        'child_of' => $post->ID,
        'echo'     => 0
    ) );
}
//if child pages have parent iterate through each and output details
if($ids){
    foreach (array_reverse($ids) as $id){
        $getparent = get_post($id);
        echo $getparent->post_title . '<br />';
    }
}
//Output the wp_list_pages
if ( $children ) : ?>
    <ul>
        <?php echo $children; ?>
    </ul>
<?php endif; ?>