首先,我建议您使用pre_get_post 钩住你的目标。如果只在主题中使用新的WP\\u查询,Wordpress在获取主题之前运行查询是没有意义的,因为这将是一项额外的工作,将被丢弃。使用pre\\u get\\u posts,我们可以更改主查询以符合我们的目的,并在不执行其他查询的情况下获得我们想要的内容。
就是这么说的。下面是一个示例代码:
//Functions for filters
add_action( \'pre_get_posts\', \'properties_pre_get_post\' );
function properties_pre_get_post($query){
//limit to frontend, to the main query and to home page
if($query->is_main_query() && !is_admin() && is_home() ) {
//the main query to get only sticky posts
$query->set(\'post__in\',get_option( \'sticky_posts\' ));
}
}
将该代码放入函数中。php和在您的家中。可以运行的php模板文件
the loop 像往常一样。
自定义帖子类型不支持内置的“粘性”功能,但您可以创建标记或分类术语,并按此标记进行筛选。例如,如果自定义帖子类型支持post\\u标记分类法,则可以创建一个名为“特色”的术语,并将每个帖子附加到此标记和过滤器:
//Functions for filters
add_action( \'pre_get_posts\', \'my_pre_get_post\' );
function my_pre_get_post($query){
//limit to main query, frontend and home page
if($query->is_main_query() && !is_admin() && is_home() ) {
$tax_query = array (
\'taxonomy\'=> array(\'post_tags\'),
\'field\' => \'slug\',
\'terms\' => \'featured\',
);
$query->set(\'tax_query\',$tax_query);
//filter also by your custom post type
$query->set(\'post_type\',\'listings\');
}
}