Finding the next 5 posts

时间:2015-03-31 作者:Matthew

我的单曲。我想运行一个查询,在那里我可以捕获接下来的5篇文章(按时间顺序)。我知道怎么做,除了找出一种方法来指定5个特定的帖子是在我当前帖子之后创建的帖子。使用上一个_post_link();和next\\u post\\u link();在这里不相关,因为我需要它们是特定类别的。

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

整体部分使用date_query 在自定义中WP_Query 根据传递给它的参数获取相邻的帖子。下面是一个来自我正忙着的插件的想法

要完成您需要的,您需要以下内容

获取post_dateID

分配给当前职位的类别。

第一部分可以通过以下方式完成get_queried_object() 它将容纳post_dateID. 后一部分可以通过wp_get_post_terms() 为了提高效率

综上所述,您可以尝试以下方法:(注意:这都是未经测试的,可能有问题,从平板电脑发布)

$post_object = get_queried_object();
$terms = wp_get_post_terms( $post_object->ID, \'category\', array( \'fields\' => \'ids\' ) ); // Set fields to get only term ID\'s to make this more effient

$args = array(
    \'cat\' => $terms[0],
    \'posts_per_page\' => 5,
    \'no_found_rows\' => true,   // Get 5 poss and bail. Make our query more effiecient
    \'suppress_filters\' => true,  // We don\'t want any filters to alter this query
    \'date_query\' => array(
        array(
            \'after\' => $post_object->post_date,  // Get posts after the current post, use current post post_date
            \'inclusive\' => false, // Don\'t include the current post in the query
        )
    ) 
);
$q = new WP_Query( $args );
var_dump( $q->posts );
很少有重要的音符,你需要好好玩玩afterbefore 在您的date_queryorder 参数我已经记不清我是怎么把这首曲子拼在一起的了,真丢人。我想如果你用before 在您的date_query, 您需要设置orderASC 获取正确的帖子。但正如我所说的,玩弄这些参数

我使用了默认的分类法category 在我的例子中。如果使用自定义分类法,请更改category 在里面wp_get_post_terms() 到所需的分类名称。同时,拆下cat 参数,并将其替换为正确的tax_query

如果您只对获取帖子ID感兴趣,则可以设置\'fields\' => \'ids\' 使查询更加有效

这会给你一个基本的想法,这会帮助你实现目标

结束