¿numberposts? ¿showposts? ¿posts_per_page?
Así que la documentación en el Codex es bastante clara en que showposts está deprecado. Pero esa misma documentación no menciona nada sobre numberposts. En cambio, posts_per_page está listado.
Pero si nos dirigimos a la documentación del Codex para get_posts no vemos ninguna mención de posts_per_page, en su lugar citan numberposts.
En post.php podemos ver lo que está sucediendo: numberposts se establece como valor predeterminado (5), pero luego se copia a posts_per_page (a menos que posts_per_page esté establecido en los argumentos).
Así que mi pregunta es realmente bastante minuciosa, pero quiero actualizar el Codex y quería preguntarles - ¿hay alguna razón por la que no deberíamos simplemente fomentar el uso de posts_per_page en todos los casos, eventualmente deprecando numberposts? ¿O me estoy perdiendo alguna perspectiva crítica aquí?

En mi opinión, dejar obsoleto numberposts
no tendría sentido, ya que numberposts
se utiliza para consultar una cantidad x de publicaciones, mientras que posts_per_page
se usa para indicar cuántas publicaciones por página se muestran durante la paginación. Si se dejara obsoleto numberposts
en favor de simplemente posts_per_page
, entonces la paginación no existiría.
Ejemplo:
"numberposts" => 50, "posts_per_page" => 10
Un total de 50 publicaciones para consultar, 10 publicaciones por página, dando como resultado 5 páginas de 10 publicaciones cada una.
Eliminación de numberposts
:
"posts_per_page" => 50
Un total de 50 publicaciones para consultar, 50 publicaciones por página (ya que copia el valor de numberposts
a posts_per_page
), dando como resultado 1 página de 50 publicaciones y sin paginación.
Házme saber si solo estoy reiterando algo de lo que ya estás al tanto, y simplemente estoy un poco confundido por la pregunta.

Estoy de acuerdo en que suenan como si deberían hacer cosas diferentes, pero si estudias el código, ¡en realidad no lo hacen! De hecho, prefiero "numberposts" en algunos casos, como cuando la noción de "páginas" no entra realmente en juego, por ejemplo, en algún resultado en un widget de la barra lateral.

Creo que numberposts
es necesario cuando necesitas consultar todas las publicaciones pasando -1
, lo que no puedes hacer con posts_per_page

@iSaumya no es cierto - la documentación de los parámetros de paginación de WP_Query dice explícitamente que puedes pasar posts_per_page = -1

La clase WP_Query
tiene el parámetro posts_per_page
, mientras que la función get_posts
tiene el parámetro numberposts
. En la página de documentación de la función get_posts
se indica:
'numberposts' (int) Número total de posts a recuperar. Es un alias de $posts_per_page en WP_Query. Acepta -1 para todos. Por defecto 5.
En la página de referencia del código de get_posts() en el código fuente se puede ver que utiliza el valor de numberposts
cuando posts_per_page
está vacío, así es como funciona como 'alias' (o respaldo) para este.
if ( ! empty( $parsed_args['numberposts'] ) && empty( $parsed_args['posts_per_page'] ) ) { $parsed_args['posts_per_page'] = $parsed_args['numberposts']; ...
Al menos, así es como lo entiendo.
