0

我有这个html结构:

<home>
 <Web>
   <web 1>
   <web 2>
   <web 3>
   <web 4>
   <web 5>
   <web 6>
   <web 7>
 </web>
 <Print>
   <Print 1>
   <Print 2>
   <Print 3>
   <Print 4>
   <Print 5>
 </print>
 <Art>
   <Art 1>
   <Art 2>
   <Art 3>
   <Art 4>
   <Art 5>
   <Art 6>
 </art>
</home>

我用它来显示孙子内容,同时隐藏其父项

<?php $counter = 1 ?>
<div class="row-fluid">

<?php 
if ( have_posts() ) {
while ( have_posts() ) {
the_post();

$args=array(
        'orderby' => 'menu_order',
        'order' => 'ASC',
        'posts_per_page' => -1,
'post__not_in' => array(4,368,358,354),
        'post_type' => 'page',
        'post__in' => $pageIDs
);

$childpages = new WP_Query($args);

if($childpages->post_count > 0) { /* display the children content  */
    while ($childpages->have_posts()) {
         $childpages->the_post(); ?>
<div class="span4">
            <?php 
        echo "<h2>".get_the_title()."</h2>";
                echo the_content(); 
    ?>
</div>
<? if ($counter % 3 == 0): ?>
</div>
<div class="row-fluid">
    <?php endif; ?>
<?php $counter++; ?>

   <?php }
}
wp_reset_query();
}
}

?>
</div>

在显示所有孙子的那一刻,我如何将孙子的数量限制为每种类型 3 个(印刷版 3 个,网络版 3 个,艺术版 3 个)?

4

1 回答 1

1

首先,我会尽量不使用更多的查询然后需要。假设您知道(或知道如何获取)父帖子的$id作为整数),请使用post_parent 参数

<?php
$args = array(
    'post_type'         => 'page',
    'posts_per_page'    => 3,
    'post_parent'       => $id,
    'orderby'           => 'menu_order',
    'order'             => 'ASC',
    'post__not_in'      => array(4,368,358,354),
);
$childpages = new WP_Query( $args );
if ( $childpages->have_posts() ) :
?>
    <div class="row-fluid">
    <?php
    while ( $childpages->have_posts() ) :
        $childpages->the_post();
        ?>
        <div class="span4">
            <h2>
                <?php the_title(); ?>
            </h2>
            <?php the_content(); ?>
        </div>
        <?php
    endwhile;
    ?>
    </div>
    <?php
endif;
wp_reset_query();
?>

尝试#2:

<div class="row-fluid">  
<?php
$args = array(
    'child_of' => 4,
    'parent' => 0,
    'post_type' => 'page',
    'post_status' => 'publish'
); 
$childrens = query_posts('showposts=100&post_parent=4&post_type=page&orderby=menu_order&order=asc');

foreach ( $childrens as $children ) :
    query_posts('showposts=3&post_parent='.$children->ID.'&post_type=page&orderby=menu_order&order=asc');
    if ( have_posts ) :
        while ( have_posts() ) : the_post();
?>
            <div class="span4">
                <h2>
                    <?php the_title(); ?>
                </h2>
                <?php the_content(); ?>
            </div>
<?php
        endwhile;
    endif;
endforeach;
?>
</div>

请让我知道您使用此代码示例得到了什么。

于 2013-01-28T21:41:01.340 回答