posts_per_page без ограничений

Я хочу вернуть ВСЕ сообщения с помощью query_posts . Я попытался установить posts_per_page на действительно большое число, но query_posts выдает и не возвращает никаких сообщений. Каков правильный способ запроса сообщений без ограничения?

  $ args = array (
    'post_type' => 'после',
    'cat' => '22, 47,67' ,
    'orderby' => 'имя',
    'order' => 'ASC',
    'hide_empty' => 1,
    'depth' => 1,
    'posts_per_page' => ?
    );
 
35 голосов | спросил Banjer 11 SunEurope/Moscow2011-12-11T19:50:13+04:00Europe/Moscow12bEurope/MoscowSun, 11 Dec 2011 19:50:13 +0400 2011, 19:50:13

5 ответов


67

-1 - ваш ответ! Найдите posts_per_page здесь .

  $ args = array (
'post_type' => 'после',
'cat' => '22, 47,67' ,
'orderby' => 'имя',
'order' => 'ASC',
'hide_empty' => 1,
'depth' => 1,
'posts_per_page' => -1
);
 

Важное предупреждение . Это может привести к очень большому запросу, который может привести к снижению сайта. Сделайте это, только если вы уверены, что ваша база данных может справиться с этим. Не в публичных темах или плагинах.

ответил Rutwick Gangurde 11 SunEurope/Moscow2011-12-11T21:48:59+04:00Europe/Moscow12bEurope/MoscowSun, 11 Dec 2011 21:48:59 +0400 2011, 21:48:59
18

Или, альтернативно, вы можете передать WP_Query (это то, что query_posts ) аргумент nopaging , который в основном делает то же самое.

  $ args = array (
    'nopaging' => правда
    //Ваши другие аргументы и т. Д.
);
 

Он будет делать то же самое, но если вам придется оглянуться на него позже и не помню, что вы делаете, я лично чувствую, что вам будет более ясно, что именно вы намеревались с этим параметром внутри массива args.

Как я уже упоминал, они оба достигнут того же самого.

Невозможно повредить более одного подхода, и всегда приятно делиться тем, что вы знаете, достаточно сказать, что это причина моего ответа, несмотря на то, что у вас уже есть достаточно.;)

ответил t31os 12 MonEurope/Moscow2011-12-12T21:16:58+04:00Europe/Moscow12bEurope/MoscowMon, 12 Dec 2011 21:16:58 +0400 2011, 21:16:58
3

Из файла функций ваших дочерних тем:

  add_action ('pre_get_posts', 'wpsites_no_limit_posts');

функция wpsites_no_limit_posts ($ query) {

if ($ query-> is_main_query () & amp; & amp;! is_admin () & amp; & amp; is_home ()) {

$ query-> set ('posts_per_page', '-1');
$ query-> set ('order', 'ASC');
$ query-> set ('post_type', 'post');
$ query-> set ('cat', '22, 47,67 ');
$ query-> set ('orderby', 'name');
$ query-> set ('order', 'ASC');
$ query-> set ('hide_empty', '1');
$ query-> set ('depth', '1');

    }

}
 
ответил Brad Dalton 23 FebruaryEurope/MoscowbSun, 23 Feb 2014 07:19:11 +0400000000amSun, 23 Feb 2014 07:19:11 +040014 2014, 07:19:11
1

Правильный ответ для вашей проблемы - 'posts_per_page' => -1 , потому что -1 будет возвращать неограниченное количество сообщений на странице Как остальные пользователи ответят.

Я просто хочу добавить дополнение к этому Q /A,

Если вы хотите получить количество сообщений на странице из настроек чтения на панели администрирования WordPress, вы должны вызвать функцию get_option () и передать posts_per_page как string к ней.

  $ args = array (
    'post_type' => 'после',
    'cat' => '22, 47,67' ,
    'orderby' => 'имя',
    'order' => 'ASC',
    'hide_empty' => 1,
    'depth' => 1,
    'posts_per_page' => get_option ( 'posts_per_page')
    );
 

Я надеюсь, что этот ответ поможет кому-то помочь мне. Счастливые пользователи Stackexchange Coding

ответил Elkhouaja 11 PM00000070000004531 2016, 19:29:45
0

Или ..

  function getAll ($ arg, $ posts_per_page = 50)
{
    $ data = array ();
    $ page = 1;

    делать{
        $ arg ['paged'] = $ page;
        $ arg ['posts_per_page'] = $ posts_per_page;

        $ query = new WP_Query ($ arg);

        foreach ($ query-> posts как $ post) {
            $ data [] = $ post;
        }

        $ Страница ++;

    } while (count ($ query-> posts) === $ posts_per_page);

    return $ data;
}
 
ответил Ricardo Canelas 22 FebruaryEurope/MoscowbWed, 22 Feb 2017 13:43:43 +0300000000pmWed, 22 Feb 2017 13:43:43 +030017 2017, 13:43:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132