这可能有点复杂,如果您想专门查询其他帖子类型,我建议您不要将粘性特性添加到其他帖子类型中,而是使用post meta 将自定义类型指定为“粘滞”。如果在多个帖子类型上使用粘滞特性,您将使用以下代码获得意外的结果,因为粘滞帖子存储为一个帖子ID数组,与它们所引用的帖子类型无关。如果您没有在其他帖子类型上使用粘性功能,那么下面的代码应该可以正常工作。
首先,粘性帖子保存在选项中\'sticky_posts\'
, 要获得有限数量的这些ID,我们需要slice the array 只获取我们想要的数量,然后我们将其作为post__in
我们的查询的参数。
其次,粘性帖子是在查询中指定的内容之上添加到查询中的,因此我们需要设置的参数之一是忽略粘性帖子,这似乎违反直觉,但我们希望自己显式查询这些帖子,而不是将它们添加到查询中。
最后,由于这是一个附加查询,we don\'t want to use query_posts
, 我们使用新的WP_Query
相反
// limit the number to our mini features number
$sticky = array_slice( get_option(\'sticky_posts\'), 0, $mini_features_number );
$mini_features = new WP_Query(array(
\'post_type\' => \'infobox\',
\'post__in\' => $sticky,
\'ignore_sticky_posts\' => 1,
\'posts_per_page\' => $mini_features_number // possibly redundant, but in case it\'s larger than default posts_per_page
));
while( $mini_features->have_posts() ):
$mini_features->the_post();
// your loop stuff
endwhile;