如何使用wp_list_ages定位POST_PARENT的孙辈

时间:2016-08-07 作者:Heather

我之前发布了一个更大的问题(仍然没有答案),如果我能找到一种方法来针对父母职位的孙子(或三级职位),我可能可以解决这个问题。

现在,此代码:

$Pages = wp_list_pages(\'child_of=\'.($post->post_parent != false ? $post->post_parent : $post->ID).\'&title_li=&echo=0\')

echo $Pages;
将显示第二级和第三级页面(粗体=在子菜单中可见)。

主页(活动页)Child

  • Grandchildstr_replace在孙子身上。

    我知道如何瞄准孩子,但基本上需要为孙子孙女做同样的事情。

    $Pages = wp_list_pages(\'child_of=\'.($post->post_parent != false ? $post->post_parent : $post->ID).\'&title_li=&echo=0\')
    
    $Pages = str_replace($Pages,
                         \'<ul id="test">\'.$Pages.\'</ul>\',
                         $Pages);
    echo $Pages;
    unset($Pages);
    

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

正确答案是:

$Pages      = wp_list_pages(\'child_of=\'.($post->post_parent != false ? $post->post_parent : $post->ID).\'&title_li=&echo=0&depth=1\');
            $InnerPages = wp_list_pages(\'child_of=\'.($post->post_child != false ? $post->post_child : $post->ID).\'&title_li=&echo=0\');
            $Title      = ($post->post_child != false) ? trim(get_the_title($post->post_child)) : trim(wp_title(\'\', false));
            if($Title != \'\')
              $Pages      = str_replace($Title.\'</a></li>\',
                                        $Title.\'</a>\'.
                                        \'<ul id="test"><li>Overview</li>\'.$InnerPages.\'</ul></li>\',
                                        $Pages);
            echo $Pages;
            unset($Pages, $InnerPages);
HOWEVER, 我已经找到了一个更好的解决方案来完成我想做的事情:How to add active class to custom menu using while loop and wp_list_pages