我的单曲。我想运行一个查询,在那里我可以捕获接下来的5篇文章(按时间顺序)。我知道怎么做,除了找出一种方法来指定5个特定的帖子是在我当前帖子之后创建的帖子。使用上一个_post_link();和next\\u post\\u link();在这里不相关,因为我需要它们是特定类别的。
Finding the next 5 posts
整体部分使用date_query
在自定义中WP_Query
根据传递给它的参数获取相邻的帖子。下面是一个来自我正忙着的插件的想法
要完成您需要的,您需要以下内容
获取post_date
和ID
分配给当前职位的类别。
第一部分可以通过以下方式完成get_queried_object()
它将容纳post_date
和ID
. 后一部分可以通过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 );
很少有重要的音符,你需要好好玩玩after
和before
在您的date_query
和order
参数我已经记不清我是怎么把这首曲子拼在一起的了,真丢人。我想如果你用before
在您的date_query
, 您需要设置order
到ASC
获取正确的帖子。但正如我所说的,玩弄这些参数我使用了默认的分类法category
在我的例子中。如果使用自定义分类法,请更改category
在里面wp_get_post_terms()
到所需的分类名称。同时,拆下cat
参数,并将其替换为正确的tax_query
如果您只对获取帖子ID感兴趣,则可以设置\'fields\' => \'ids\'
使查询更加有效
这会给你一个基本的想法,这会帮助你实现目标