带有多个查询的PRE_GET_POST

时间:2017-11-22 作者:wickywills

我有一个存档模板,我用它列出所有企业(“列表”),也有分页,不过还有一个谷歌地图,带有所有企业的自定义标记。

如何使用pre_get_posts 函数,因为一个查询需要分页,而另一个(map)我刚刚设置为999posts_per_page? 还是我完全错了?

function listing_archive_custom_query( $query ) {
    if ( !is_admin() && $query->is_main_query() && is_post_type_archive(\'listing\') ) {
        $query->set( \'posts_per_page\', get_option(\'posts_per_page\') );
        $query->set( \'post_type\', \'listing\' );
        $query->set( \'meta_key\', \'featured\' );
        $query->set( \'orderby\', \'meta_value\' );
        $query->set( \'order\', \'desc\' );
        $query->set( \'facetwp\', true );
    }
}
add_filter( \'pre_get_posts\', \'listing_archive_custom_query\' );

1 个回复
SO网友:grazianodev

您需要有两个查询,一个处理列表,另一个处理地图。

由于您需要为列表分页,我建议您使用pre_get_posts 对于该查询,您可以使用Wordpress的默认分页。

对于地图,请在存档模板中创建新的WP\\U查询:

$args = array(
    \'posts_per_page\' => 999,
    \'post_type\' => \'listing\',
);

$map = new WP_Query( $args );

结束

相关推荐