1

我试图弄清楚如何在自定义侧边栏小部件中列出 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在 WordPress 后端的“外观”>“小部件”屏幕上进行了设置。

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

4

1 回答 1

1

最重要的是,不要使用 query_posts
什么时候应该使用 WP_Query、query_posts() 和 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;
        }
    }
}

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

于 2013-07-04T13:39:32.413 回答