numberposts? showposts? posts_per_page?
Итак, документация в Codex четко указывает, что showposts является устаревшим. Но та же документация ничего не говорит о numberposts. Вместо этого указан параметр posts_per_page.
Но если мы обратимся к документации Codex для get_posts, мы не увидим упоминания posts_per_page, вместо этого там указан numberposts.
В post.php мы видим, что происходит: numberposts установлен как значение по умолчанию (5), но затем копируется в posts_per_page (если только posts_per_page не установлен в аргументах).
Мой вопрос довольно педантичный, но я хочу обновить Codex, поэтому хотел спросить у вас - есть ли причина, по которой мы не должны просто рекомендовать использовать posts_per_page повсеместно, постепенно объявляя numberposts устаревшим? Или я упускаю какой-то важный момент?

На мой взгляд, отказ от параметра numberposts
не имеет смысла, так как numberposts
используется для запроса x количества записей, тогда как posts_per_page
определяет, сколько записей отображается на одной странице при пагинации. Если бы мы отказались от numberposts
в пользу только posts_per_page
, то пагинация перестала бы существовать.
Например:
"numberposts" => 50, "posts_per_page" => 10
всего запрашивается 50 записей, по 10 записей на страницу, что дает 5 страниц по 10 записей каждая.
При удалении numberposts
:
"posts_per_page" => 50
всего запрашивается 50 записей, по 50 записей на страницу (поскольку значение numberposts
копируется в posts_per_page
), что дает одну страницу из 50 записей и отсутствие пагинации.
Дайте знать, если я повторяю то, что вам уже известно, и я просто немного запутался в вопросе.

Я согласен, что по звучанию они должны делать разные вещи, но если изучить код, на самом деле это не так! В некоторых случаях я предпочитаю "numberposts", например, когда концепция "страниц" не играет роли - как в выводе в сайдбаре виджета.

Я думаю, numberposts
необходим, когда нужно получить все записи, передав -1
, чего нельзя сделать с posts_per_page

@iSaumya неверно - документация для параметров пагинации WP_Query явно указывает, что можно передать posts_per_page = -1

Класс WP_Query
использует параметр posts_per_page
, тогда как функция get_posts
использует параметр numberposts
. На странице документации функции get_posts
указано:
'numberposts'(int) Общее количество записей для выборки. Является алиасом для $posts_per_page в WP_Query. Принимает значение -1 для выборки всех записей. По умолчанию 5.
На странице справочника по коду get_posts() в исходном коде видно, что используется значение numberposts
, когда posts_per_page
не указан, таким образом это работает как 'алиас' (или запасной вариант) для него.
if ( ! empty( $parsed_args['numberposts'] ) && empty( $parsed_args['posts_per_page'] ) ) { $parsed_args['posts_per_page'] = $parsed_args['numberposts']; ...
По крайней мере, так я это понимаю.
