Почему get_posts () возвращает только 5 совпадающих сообщений, тогда как он должен возвращать 9? - PullRequest
9 голосов
/ 25 января 2010
global $post; 
$cat1=get_cat_ID('test1'); 
$cat2=get_cat_ID('test2'); 
$myrecentposts = get_posts(array('post_not_in' => get_option('sticky_posts'), 'cat' => "-$cat1,-$cat2",'showposts' => 5));
$myrecentposts2 = get_posts(array('post_not_in' => get_option('sticky_posts'), 'cat' => "-$cat1,-$cat2"));
$myrecentpostscount = count($myrecentposts2);
echo $myrecentpostscount;

Значение эха равно 5 (правильное значение должно быть 9). Единственный способ заставить его вернуть правильное значение для количества сообщений - изменить вычисление $ myrecentposts2 следующим образом ...

$myrecentposts2 = get_posts(array('post_not_in' => get_option('sticky_posts'), 'cat' => "-$cat1,-$cat2",'showposts' => 999));

Ответы [ 3 ]

17 голосов
/ 25 января 2010

Кодекс Wordpress говорит: get_posts имеет значение по умолчанию posts_per_page значение 5.

Чтобы снять этот предел, используйте posts_per_page = -1.

Для снятия этого ограничения вы можете использовать nopaging = true.

7 голосов
/ 09 августа 2012

Посмотрите документацию get_posts() по Кодексу , вы можете видеть, что есть параметр для количества сообщений, которые вы хотите отобразить:

Параметр: 'posts_per_page'
Использование: 'posts_per_page'=> -1 // for removing the limit. Это приведет к получению всех сообщений.

обновление: 'nopaging' => true это путь с более новыми версиями

0 голосов
/ 26 января 2010

Кроме того, showposts устарела начиная с WP 2.9 (или, может быть, даже 2.8), используйте posts_per_page всякий раз, когда вы пытаетесь контролировать количество возвращаемых сообщений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...