Child Pages Loop

时间:2013-03-29 作者:Andy

如果有人能帮忙那就太好了。

我找到了一段我使用过的代码,它基本上完成了我希望它完成的任务,列出了父级的子页面,如果有缩略图,则添加缩略图,并添加了自定义摘录。

然而,问题是我不能添加个人<?php post_class(); ?> 对于循环中的div,它使用来自父级的类并对子页重复。

<?php
$child_pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = ".$post->ID."    AND post_type = \'page\' ORDER BY menu_order", \'OBJECT\');    ?>
<?php if ( $child_pages ) : foreach ( $child_pages as $pageChild ) : setup_postdata( $pageChild ); ?>

<?php
// Must be inside a loop.
if ( has_post_thumbnail($pageChild->ID) ) {
get_the_post_thumbnail(\'page-thumb-mine\');
}
//  else {
//  echo \'<img src="\' . get_bloginfo( \'stylesheet_directory\' ) . \'/images/icon-cropped.png" />\';
//  }
?>

<div <?php post_class(); ?>>    
<?php echo get_the_post_thumbnail($pageChild->ID, \'page-thumb-mine\'); ?>
<h3><a href="<?php echo get_permalink($pageChild->ID); ?>" rel="bookmark" title="<?php     echo $pageChild->post_title; ?>"><?php echo $pageChild->post_title; ?></a></h3>
<?php echo excerpt(28); ?>
</div>
</div>
<?php endforeach; endif;
?>
任何帮助都将不胜感激!

谢谢

安迪

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

我很确定问题是一些模板标记依赖于全局$post 变量使用setup_postdata() 你现在的样子不会改变$post. 如果替换$pageChild 具有$post, 一切都应该起作用。

但是,我强烈建议您使用WP\\u Query类,并使用“the\\u post()”设置post数据。以下是与您的代码等效的代码,但带有WP\\U查询:

<?php
$args = array(
    \'post_parent\' => $post->ID,
    \'post_type\' => \'page\',
    \'orderby\' => \'menu_order\'
);

$child_query = new WP_Query( $args );
?>

<?php while ( $child_query->have_posts() ) : $child_query->the_post(); ?>

    <div <?php post_class(); ?>>  
        <?php  
        if ( has_post_thumbnail() ) {
            the_post_thumbnail(\'page-thumb-mine\');
        }
        ?>
        <h3><a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
        <?php the_excerpt(); ?>
    </div>
<?php endwhile; ?>

<?php
wp_reset_postdata();
注意:我清理了您发布的代码中的其他一些内容。还有,我换掉了你的定制excerpt() 具有的函数the_excerpt() 因此,示例代码适用于任何想要复制/粘贴它的人。

参考文献:

https://codex.wordpress.org/Class_Reference/WP_Query

https://codex.wordpress.org/Function_Reference/setup_postdata

结束