需要停止wordpress后循环

时间:2014-04-02 01:19:55

标签: php wordpress

<?php if ( have_posts() ) : ?>
             <?php while ( have_posts() ) : the_post(); ?>
                <?php get_template_part( 'content', get_post_format() ); ?>
            <?php endwhile; ?>

            <?php twentythirteen_paging_nav(); ?>

        <?php else : ?>
            <?php get_template_part( 'content', 'none' ); ?>
        <?php endif; ?>

我从2013主题的index.php文件中获取了此代码。我将此代码粘贴到我的网站,以便我以后编辑。有用。但它会显示我放置上述代码的所有帖子,但我需要只显示某些部分的帖子。

如何编辑代码以阻止它循环wordpress中的所有帖子并仅显示我想要的帖子。

3 个答案:

答案 0 :(得分:0)

我通常会创建一个新的WP_Query对象。关于这个的好处是它可以嵌套在其他循环中,如果需要 - wp_reset_query()应该防止嵌套查询影响主查询。

<?php
    $new_loop = new WP_Query( array(
    'post_type' => 'post',
        'posts_per_page' => 5
    ) );
?>

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

            // Your loop here

    <?php endwhile;?>
<?php else: ?>
<?php endif; ?>
<?php wp_reset_query(); ?>

答案 1 :(得分:0)

我认为这就是你要找的东西。你可以通过它的slug获得一个帖子。

<?php
$the_slug = 'my_slug';
$args=array(
'name' => $the_slug,
'post_type' => 'post',
'post_status' => 'publish',
'numberposts' => 1
);
$my_posts = get_posts($args);
if( $my_posts ) {
 echo 'ID on the first post found '.$my_posts[0]->ID;
}
?>

答案 2 :(得分:0)

我认为此代码对您有帮助

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args=array('post_type' => 'post','posts_per_page' => 3, 'paged' => $paged);
    query_posts($args); 
    if ( have_posts() ) : while ( have_posts() ) : the_post();  

    // Your loop here

  <?php endwhile; ?> 
    <?php endif; ?>