Php 如何在wordpress的所有页面上显示一个父页面的子页面

Php 如何在wordpress的所有页面上显示一个父页面的子页面,php,wordpress,Php,Wordpress,我正试图在我的wordpress网站的所有页面的页脚中显示rugs的子页面 我正在使用的页脚中的代码是 <?php global $wp_query; $post = $wp_query->post; $ancestors = get_post_ancestors($post); if( empty($post->post_parent) ) { $parent =

我正试图在我的wordpress网站的所有页面的页脚中显示rugs的子页面

我正在使用的页脚中的代码是

            <?php
        global $wp_query;
        $post = $wp_query->post;
        $ancestors = get_post_ancestors($post);
        if( empty($post->post_parent) ) {
            $parent = $post->ID;
        } else {
            $parent = end($ancestors);
        }
        if(wp_list_pages("title_li=&child_of=$parent&echo=0" )) { ?>

        <ul class="footerNav clearfix">
            <?php wp_list_pages("title_li=&child_of=$parent&depth=1" ); ?>
        </ul><!-- #secondary-nav -->

        <?php } ?>

但是,当您处于相关类别中时,这仅显示页脚中的子页面,我希望在所有页面上看到此导航

谢谢

这是一个链接,指向一个页面,页面的页脚是我希望在所有页面上显示的

通过使用

$post = $wp_query->post;
$ancestors = get_post_ancestors($post);
变量$post被分配给访问者当前正在查看的帖子

如果你想在所有的页面上都有一个包含所有地毯的菜单,你只需要代码的底部。另外,参数的子_不需要通过变量赋值,您可以输入rugs的静态页面ID,即173:

这三行就足以为您生成菜单。围绕它的if语句检查特定父页面是否有子页面,并且仅在这种情况下生成无序列表。既然你知道它在这种情况下是存在的,我就把它删掉,并保存这两行。为了完整起见,我加入了sort_列参数-这将为您提供所有地毯的按字母顺序排序的菜单

if语句上面的代码仅适用于动态菜单,这些菜单根据访问者当前所在的页面而变化。如果你曾经想要实现这样一个菜单,我仍然会以不同的方式去做,并且认为上面的内容过于夸张。简单插入

<?php $ancestors = get_post_ancestors($post); ?>

php文件将允许您在其他地方使用

<?php if (is_page(173) || in_array(173,$ancestors)) { ?>
    <ul class="subnav">
        <?php wp_list_pages('title_li=&child_of=173&depth=1'); ?>
    </ul>
<?php } ?>

如上所述,对于您的特定情况,第一个代码块三行程序就足够了


进一步参考:

hi我将其更改为$consenses=$consenses=get\u post\u consenses(175);我犯了一个累人的思维错误。我昨天给你的代码抓住了“rugs”的祖先,也就是你的主页(slug'luke irwin')。但是,既然您已经知道将其更改为175,那么如果您删除了整个
$wp query
内容和if语句,只留下
$procents=get\u post\u procents(175)
$parent=end($祖先)无论如何,我已经更新了我的答案。太棒了,非常感谢你的帮助!!我稍后会测试它。就在别的事情的中间。
<?php if (is_page(173) || in_array(173,$ancestors)) { ?>
    <ul class="subnav">
        <?php wp_list_pages('title_li=&child_of=173&depth=1'); ?>
    </ul>
<?php } ?>