按ID的Wordpress页面顺序

时间:2014-04-20 12:09:41

标签: wordpress sorting parent

我有一个WordPress网站,我试图将菜单动态放在侧栏上,基于父页面,如下父页面下的子页面。例如:

〔实施例 - 例1 - 例2 - 例3

当我在页面上选择属性时,侧边栏菜单应如上所示。

我做到了这一点,每个链接都出现了,但唯一的问题是订单。菜单上的页面顺序不遵循订单或其ID。 > http://demo.chilipress.com/clinic/?page_id=74请查看侧栏。例如"医务人员"显示在底部,但它应该显示在"关于线"因为它的页面ID是" 74"。我想你已经理解了这个问题。我使用了以下代码:

                            <ul class="side-nav">
                            <?php if(is_page('$post->post_parent')): ?><?php endif; ?>
                            <li <?php if(is_page($post->post_parent)): ?>class="current_page_item"<?php endif; ?>><a href="<?php echo get_permalink($post->post_parent); ?>" title="Back to Parent Page"><?php echo get_the_title($post->post_parent); ?></a></li>
                            <?php
                            if($post->post_parent)
                            $children = get_pages(array("child_of" => $post->post_parent));
                            else
                            $children = get_pages(array("child_of" => $post->ID));
                            if ($children) {
                            ?>
                            <?php 

                                foreach($children as $c):
                                    ?>
                                    <li class="page_item page-item-<?php echo $c->ID ?> <?php if($c->ID == get_the_ID()): ?>current_page_item<?php endif; ?>"><a href="<?php echo get_permalink($c->ID) ?>"><?php echo get_the_title($c->ID) ?></a></li>
                                    <?php
                                endforeach;

                             ?>
                            <?php } ?>
                        </ul>

任何人都可以告诉我应该在此代码中包含哪些内容以自动重新排列我的菜单,以便它们按照页面ID的顺序显示?

1 个答案:

答案 0 :(得分:3)

您可以检查您正在使用的功能的代码,即 - get_pages
https://codex.wordpress.org/Function_Reference/get_pages

您需要包含'sort_column' => 'ID'
使用您的代码的示例:

$children = get_pages( array(
    'child_of'    => $post->post_parent,
    'sort_column' => 'ID'
) );