执行以下操作:
function get_custom_posts_wpse_124312() {
static $post_qry;
if (!empty($post_qry)) {
return $post_qry;
} else {
$post_qry = new WP_Query(array(\'post_type\'=>\'post\',\'posts_per_page\'=>2)); // whatever arguments you need
}
return $post_qry;
}
function filter_featured_special_wpse_124312($qry) {
if ($qry->is_main_query()) { // whatever conditions you need
remove_action(\'pre_get_posts\',\'filter_featured_special_wpse_124312\');
$fs = get_custom_posts_wpse_124312();
if (!empty($fs)) {
$ids = wp_list_pluck($fs->posts,\'ID\');
$qry->set(\'posts__not_in\',$ids);
}
}
}
add_action(\'pre_get_posts\',\'filter_featured_special_wpse_124312\');
The
get_custom_posts_wpse_124312()
应该使用您需要的任何参数来检索您的“5篇特色文章,标记为‘亮点(Highlights)””。我假设
tax_query
? 然后使用该数据排除从主查询返回的帖子。然后您可以使用
get_custom_posts()
在模板中检索要显示的post对象。您需要在模板文件中为其创建一个循环。因为
$post_qry
是静态的“特色”查询只能运行一次。