我有一个以999页ID为父的页循环(此循环中的页也有另一个子页)
$args = array(
\'post_type\' => \'page\',
\'post_parent\' => 999,
\'order\' => \'ASC\',
\'posts_per_page\' => -1
);
$loop = new WP_Query( $args );
现在我想获取页面,但有条件的话,当循环中的页面有子页面时,我想显示另一个结构。
<?php if ( have_posts() ) : ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<?php if (condition if current post have subpages ) : ?>
// html structure,
<?php else : ?>
// another default structure
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>
我试过让孩子们去看,但没有成功,我只需要适当的条件。提前感谢您的帮助。
最合适的回答,由SO网友:s_ha_dum 整理而成
适当命名的get_children()
应该是你想要的。
if ( have_posts() ) {
while ( $loop->have_posts() ) {
$loop->the_post();
$args = array(
\'post_parent\' => get_the_ID(), // the ID from your loop
\'post_type\' => \'page\',
\'posts_per_page\' => 1, // you only need to know if you have children so one is enough
\'post_status\' => \'publish\'
);
$c = get_children($args);
if (!empty($c)) {
// html structure,
} else {
// another default structure
}
}
}
如果您在这个循环中有多篇帖子,那么您将在页面上运行大量查询。您应该考虑缓存结果。