列出父页面的所有页面

时间:2013-07-04 12:07:33

标签: wordpress parent-child

我试图弄清楚如何在自定义侧边栏小部件中列出WordPress中父页面的所有子页面。我写了一个非常简单的插件,它允许我对类似的类别执行完全相同的操作:

query_posts("category_name=$category&showposts=$show_limit");
if (have_posts()):
    echo "<ul>";
    while (have_posts()) : the_post(); ?>
    <li>
        <a href="<?php echo the_permalink();?>"><i class="icon-circle-arrow-right"></i></a>
        <a href="<?php echo the_permalink(); ?>"><?php echo the_title(); ?></a>
    </li>
    <?php endwhile;
    echo "</ul>";
endif; ?>

在上面的例子中,$category$show_limit在外观&gt;上设置。 WordPress后端的窗口小部件屏幕。

对于具有多个子页面的页面,是否可以执行相同的操作?例如,如果父页面被命名为Services,我将如何以与上述方法类似的方式列出所有子页面?

1 个答案:

答案 0 :(得分:1)

非常重要,不要使用 query_posts
When should you use WP_Query vs query_posts() vs get_posts()?

您可以使用函数get_page_by_title,并执行类似(未测试)的操作:

$services = get_page_by_title( 'Services' );

if ( is_page( $services->ID ) )
{
    $args = array(
        'numberposts' => -1,
        'post_type'   => 'page',
        'post_parent' => $services->ID,
    );
    $subpages = get_posts( $args );
    if( $subpages )
    {
        foreach( $subpages as $page )
        {
            echo $page->post_title;
        }
    }
}

在Codex上get_posts()查看要使用的完整参数列表:Class_Reference/WP_Query