WP_Query filters

时间:2020-04-14 作者:Sam

这个问题可能看起来很愚蠢,但我真的没有找到有用的链接。我正在尝试做一个简单的查询,在这里我选择了最近的10篇文章,我希望能够在循环中只显示这10篇文章中的1篇

我的代码看起来像

  // Query latest 10 records
$the_query = new WP_Query( array(
    \'post_type\'      => \'post\',
    "order" => "DESC",
    \'posts_per_page\' => 10,
    \'orderby\' => \'modified\',


    ) ); 
For循环

if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
    $featured_img_url = get_the_post_thumbnail_url(get_the_ID(),\'full\');

                    <?php the_title(); ?>


endwhile;
wp_reset_postdata();
endif;

1 个回复
SO网友:Howdy_McGee

假设您希望保持WP\\u查询完全相同,我可以想出两种方法,使用各种循环来实现这一点。

1) 从posts 大堆

WP\\u查询有一组properties and methods 其中之一是posts 大堆

if( $the_query->have_posts() ) {

    // Grab the first post object
    $single_post = $the_query->posts[0];    // $post is reserved by global.

    // This only gives you access to object properties, not `the_*()` functions.
    echo $singe_post->post_title;

}

// Overwrite the global $post object
if( $the_query->have_posts() ) {

    // Grab the global post
    global $post;

    $post = $the_query->posts[0];  // Grab the first post object.
    setup_postdata( $post );        // Allows you to use `the_*()` functions. Overwrites global $post

    the_title();

    // Reset global $post back to original state
    wp_reset_postdata();

}
2)必要时回放查询。

以下内容将正常循环,但最后我们将倒带它。这确保了如果我们想循环浏览所有帖子,它将包括第一篇帖子。此方法使用WP\\u Query::rewind\\u posts

if( $the_query->have_posts() ) {

    while( $the_query->have_posts() ) {

        $the_query->the_post();

        // Break out of the loop after displaying 1 post.
        if( $the_query->current_post >= 1 ) {
            break;
        }

        the_title();

    }

    // Rewind the posts back to index 0, or the beginning.
    $the_query->rewind_posts();

    // Always call after running a secondary query loop that uses  `the_post()`
    the_query->wp_reset_postdata();

}

相关推荐

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

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