WP-API: максимальное количество страниц

$opts  = array(); // any arguments
$query = WP_Query($opts);

Обычно мы можем получить max_num_pages с помощью $totalPages = $query->max_num_pages; Но я делаю запрос json с помощью этого плагина http://wp-api.org/.

Когда я пытался получить сообщения с помощью API, ответом был просто json-объект/массив сообщений. Проблема в том, что $query->max_num_pages; недоступен. Мне нужен этот var, чтобы сделать запрос с разбивкой на страницы.

например, я хочу сделать запрос:

$.ajax({
    url: 'wp-json/posts?page=' + currentPage + '&filter[posts_per_page]=' + perPage + '&filter[cat]=' + category
});

Как мы можем заполнить переменную currentPage, если мы не знаем max_num_pages? если я просто заполню currentPage 1, все в порядке (потому что это была страница 1). Но как я узнаю, есть ли страница 2, страница 3?

Есть ли у вас какие-либо идеи? Большое спасибо за любую помощь :)


person jvs    schedule 09.03.2015    source источник


Ответы (2)


WP_Query дает вам то, что вы хотите в заголовках ответа.

Искомые термины: X-WP-Total и X-WP-TotalPages.

В jQuery вы получаете заголовки ответа AJAX следующим образом:

$.ajax({
  url: myURL,
  success: function(data, textStatus, request){
    console.log("This is the header you're looking for",request.getResponseHeader('X-WP-Total'));
  }
});

Примечание У меня не было возможности протестировать это должным образом, так как я не на своей машине разработки

person Design by Adrian    schedule 29.06.2015

Вы можете получить общее количество страниц из HTTP-заголовка «X-WP-TotalPages» HTTP-ответа. Например, используя curl для тестирования из командной строки:

curl -i http://example.com/wp-json/posts

После того, как вы получите общее количество страниц, например, 50 страниц, вы можете зациклить от 1 до 50, ответ выше CLI также содержит полезный заголовок под названием «Ссылка:», вы можете получить более подробную информацию по этой ссылке: http://wp-api.org/guides/getting-started.html.

Вам нужно получить это значение в кодах самостоятельно.

person inix    schedule 30.03.2015
comment
OP использует REST API и JavaScript. CURL не вариант. - person Design by Adrian; 28.06.2015
comment
@DesignbyAdrian привет, может быть, я хочу выразить то, что вы можете получить общее количество страниц из заголовка ответа, я использую curl, например, вам нужно получить это значение в коде самостоятельно. Я отредактирую этот ответ. - person inix; 05.07.2015