祖父母、父母、子女问题

时间:2014-07-19 作者:Nemothefish

我有以下几点

GrandParent
-Parent01
--Child
-Parent02
--Child
--Child
-Parent03
--Child
我希望找到一个解决方案,当我在祖父母页面上时,它只会返回父母,而不会返回孩子。

GrandParent
-Parent01
-Parent02
-Parent03
这是我目前拥有的代码,它生成祖父母页面的所有父母和孩子,并将他们放在一个表中。

<?php $postid = get_the_ID(); ?> 
<?php /* $pages = get_pages(array(\'child_of\' =>$postid)); */
$pages = get_children(array(
 \'numberposts\' =>30,
\'post_parent\' => $heading_page->post_id
 ));
$tCount= 0;
?> 
<table align="center" width="100%"><tr>
<?php foreach ($pages as $page): ?>
<?php     if($tCount % 2 == 0) 
{
    echo \'</tr><tr>\';
}?>
<td>  
<div id="polaroid">  
<figure>
<a href="<?php echo get_permalink($page->ID); ?>">
        <?php echo get_the_post_thumbnail($page->ID, array(300,250)); ?></a>
    <figcaption>   
<a href="<?php echo get_permalink($page->ID); ?>"><?php echo $page-   >post_title ?>
</a></figcaption>
</figure>
</div>  
 </td> 
<?php $tCount++; endforeach; ?>
</tr></table>

2 个回复
最合适的回答,由SO网友:Nemothefish 整理而成

This answer 堆栈溢出为我修复了它。。。通过在这些行中添加。。

<?php foreach ( $pages as $page ): ?>
<?php if ( $postid != $page->post_parent ) continue; ?>

SO网友:Tom J Nowell

您正在使用get_children 它完全按照你告诉它的去做。你让它得到那篇文章的所有后代,这就是你得到的。您需要更具体地了解您要查询的内容,您只需要直接的后代。

您最初的想法几乎是正确的:

$pages = get_pages(array(\'child_of\' => $postid ));
但是没有child_of 参数根据WP_Query 文档因此,与其要求孩子发帖子,不如要求孩子的家长发帖子$postid, 给我们:

$pages = get_posts(array(
    \'post_parent\' => $postid,
    \'post_type\' => \'page\'
));
其他注意事项:

使用网格系统或左浮动div代替表格,它更灵活,您可以删除计数逻辑,使循环更简单Indent your code, 缩进的代码更易于阅读,使整个类别的错误显而易见,并使人们更容易理解您的代码和编写问题的答案foreach () {} 而不是foreach(): endforeach;, 它可以更好地与编辑器、自动化工具和检查器配合使用

  • 每行只放一条命令,所有div都有一个polaroid的ID,但ID是唯一的,请使用类

  • 结束

    相关推荐