Аргумент offset в WP_Query не работает

2 мар. 2016 г., 21:24:12
Просмотры: 37.6K
Голосов: 10

Я хочу отобразить все записи, начиная с определенного смещения, мой запрос:

WP_Query( array(
    'posts_per_page'    => -1,
    'offset'            => 20,
    'cat'               => 5,
) );

Этот запрос показывает все записи без учета значения смещения (offset). Почему так происходит?

3
Комментарии

Что произойдет, если указать posts_per_page=200?

Howdy_McGee Howdy_McGee
2 мар. 2016 г. 21:26:27

@Howdy_McGee Будет работать корректно. Но почему не использовать значение -1?

rapidpage rapidpage
2 мар. 2016 г. 21:31:45

Смотри мой ответ, ты также можешь попробовать использовать nopaging => true или paged => 1, чтобы проверить, будет ли это работать со смещением и твоим значением -1.

Howdy_McGee Howdy_McGee
2 мар. 2016 г. 21:36:52
Все ответы на вопрос 1
0
28

Параметр offset в WP_Query обычно работает с пагинацией. Когда вы устанавливаете пагинацию в значение -1, функция предполагает, что вы получаете все записи, и пагинация или смещение не будут применяться. Чтобы обойти это, вы можете установить параметр posts_per_page на большое число, например, 999. Как указано в справочнике функций WP_Query, в разделе о пагинации говорится:

Используйте 'posts_per_page'=>-1, чтобы показать все записи (параметр 'offset' игнорируется при значении -1). Установите параметр 'paged', если пагинация отключена после использования этого параметра.

2 мар. 2016 г. 21:36:09