当我需要获取单个帖子类型列表时,我通常使用get_posts
, 如何检索多个custom posts types
要填充网站主页?
更准确地说,我想得到最新的混合帖子(比如工作、照片、代码等混合帖子),并按日期排序。
我可以打电话get_posts
每个自定义帖子类型,然后过滤它们,但我只是想知道是否有一种更优化的方法,比如:
<?php
$args = array (
\'post_type\' => array (\'work\', \'photo\', \'code\', \'post\'),
\'numberposts\' => 5,
\'orderby\' => \'post_date\',
\'order\' => \'DESC\'
);
$posts_array = get_posts($args);
?>
那么,是否有某种方法可以获得混合的帖子类型列表?
最合适的回答,由SO网友:Gavin Anderegg 整理而成
这个post_type
的参数get_posts()
函数用于检索不同类型的帖子内容。在这里,我假设“work”、“photo”和“code”是自定义的帖子类型。
使用WP\\u Query而不是使用get_posts()
, 您可以使用WP_Query
类获取多个帖子类型。我刚刚在本地安装上测试了以下内容:
<?php
$q = new WP_Query(array(
\'post_type\' => array(\'event\', \'post\')
));
while ($q->have_posts()) : $q->the_post();
?>
// ... the loop goes here as usual
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
<?php endwhile; ?>
这为我抓取了类型为“event”和类型为“post”的帖子,并按日期显示它们。
You can learn a lot more about the WP_Query object on the codex page. 甚至还有一个
section specific to querying types and parameters.
请注意,在实例化WP_Query
对象位于循环顶部$q->
, 但您不需要在循环内部执行此操作。