How to handle wp_query?

时间:2012-10-31 作者:dinesh

我想在一个特定类别中插入12篇帖子,但我只看到一些帖子。

就像第一次的前4个帖子和其他时间的其他帖子一样。我能做什么?

<支持>Editor note:
据我所知,该问题在第一次查询中显示了4篇帖子,在第二次查询中显示了其余帖子(共12篇中的8篇)

这是第一次查询的代码:

<?php $the_query = new WP_Query(\'cat=6&order=ASC&showposts=4\'); ?>
<?php  while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <div class="padding-10">
        <?php the_post_thumbnail(); ?>
        <div class="latestpost-dis">
            <div class="date"> <?php the_date(); ?> <span>BY</span> <?php the_author(); ?></div>
            <h4><?php the_title(); ?></h4>
            <p><?php the_excerpt(); ?></p>
            <p class="margin-top-20"><a href="#" class="btn btn-info">Read More</a></p>
        </div>
这是第二次查询:

<?php $the_query = new WP_Query(\'cat=6&order=ASC&showposts=-1,-2,-3,-4\');?>
<?php  while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <div class="padding-10">
        <?php the_post_thumbnail(); ?>
        <div class="latestpost-dis">
            <div class="date"> <?php the_date(); ?> <span>BY</span> <?php the_author(); ?></div>
            <h4><?php the_title(); ?></h4>
            <p><?php the_excerpt(); ?></p>
            <p class="margin-top-20"><a href="#" class="btn btn-info">Read More</a></p>
        </div>

3 个回复
SO网友:Chip Bennett

您没有显示整个代码,因此并非所有这些建议都是相关的:

为包含不同查询的变量使用不同的、理想的描述性名称。使用相同的变量,$my_query, 可能导致意外后果endwhile; endif;, 在打开第二个循环之前wp_reset_postdata(); 在循环之间the offset parameter, 而不是明确排除post IDshowposts 是要使用的错误(且已弃用)参数,应替换为posts_per_page.示例:

$query4posts = new WP_Query( array(
    \'cat\' => 6,
    \'order\' => \'ASC\',
    \'posts_per_page\' => 4
) );

$query8posts = new WP_Query( array(
    \'cat\' => 6,
    \'order\' => \'ASC\',
    \'posts_per_page\' => 8,
    \'offset\' => 4
) ); 

// Output first loop of 4 posts
if ( $query4posts->have_posts() ) : while ( $query4posts->have_posts() ) : $query4posts->the_post();
    // Loop output
endwhile; endif;

wp_reset_postdata();

// Output second loop of 8 posts, offset
if ( $query8posts->have_posts() ) : while ( $query8posts->have_posts() ) : $query8posts->the_post();
    // Loop output
endwhile; endif;

SO网友:Eric Holmes

您的查询代码非常完美。问题是你的论点。showposts 已弃用,您应该使用posts_per_page 相反它定义了显示的帖子数量,这就是为什么在第一个示例中会显示4篇帖子。您的第二个示例毫无意义,因此这可能就是您得到奇怪输出的原因。

SO网友:Nicole

首先,我不会使用showposts= 因为它最终将被淘汰。

您是否尝试过使用$the_query = new WP_Query( \'posts_per_page=3\' ); 相反

还要通过管理员设置再次检查要显示的帖子数量。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post