我试图弄清楚如何在自定义侧边栏小部件中列出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
,我将如何以与上述方法类似的方式列出所有子页面?
答案 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。