使用angular搜索所有WP REST API帖子

时间:2017-09-20 20:41:00

标签: wordpress wordpress-rest-api

我使用角度来显示WP Rest Api的帖子。但是,搜索只会过滤前99个帖子,因为这是最大值。反正有没有产生所有结果?

2 个答案:

答案 0 :(得分:0)

创建使用自定义查询的自定义端点。像这样:

add_action( 'rest_api_init', function () {
  register_rest_route( 'search', '/all', array(
    'methods' => 'GET',
    'callback' => 'get_all_posts',
  ));
}); 

端点:yoursite.com/wp-json/search/all

function get_all_posts() {
  $query = new WP_Query( 
    array( 'posts_per_page' => -1 ) 
  );
  return json_encode( $query );
}

请记住在注册新端点时清除永久链接!

答案 1 :(得分:0)

获取帖子的上限为每页100个,但每个请求都会返回标题X-WP-TotalPages,这会为您提供请求中的总页数。

请求下一页......

var url = your-route.example/wp-json/wp/v2/posts?per_page=100

$http.get(url).
  success(function(response) {
    var pagesNum = response.headers('X-WP-TotalPages')
        for (var i = 2; i <= pagesNum; i++) {
            $http.get(url+'&page='+i)
                .success(function(response){
                    // do something with the next page data
                })
        }
  });

...依此类推,直到你浏览完所有可用的页面。

来源:REST API Handbook