Est-il possible de remplacer le nombre de messages de blog à afficher par page (comme défini dans les paramètres de lecture dans l'administrateur WordPress)? Je veux faire en sorte qu'une boucle personnalisée que j'utilise affiche un nombre illimité.
L'argument qui contrôle le nombre de publications affichées dans la requête est posts_per_page.
<?php query_posts( array(
'post_type' => 'post',
'posts_per_page' => -1 )
);
?>
A noter également qu’il existe un bogue dans la branche 3.0 qui empêche l’entier -1 d’afficher toutes les publications. Il est corrigé dans 3.1 mais une solution de contournement consisterait à utiliser un nombre très élevé au lieu de -1
voir:
Bien sûr, modifiez la requête en ajoutant
<?php query_posts('post_type=post&numberposts=-1'); ?>
Eileen a raison, mais il vaut mieux utiliser des arguments comme un tableau <?php query_posts( array( 'post_type' => 'post', 'numberposts' => -1 ) ); ?>
J'ai eu le même problème. J'ai décidé d'ajouter une variable personnalisée, puis d'intercepter cette variable pendant pre_get_posts
pour définir le post_per_page
query_var:
function custom_query_vars_filter($vars) {
$vars[] = 'post_per_page_override';
return $vars;
}
add_filter( 'query_vars', 'custom_query_vars_filter' );
add_action( 'pre_get_posts', 'rc_modify_query_get_design_projects' );
function rc_modify_query_get_design_projects( $query ) {
if( $query->query_vars['post_per_page_override'] == '3') {
$query->set('posts_per_page', '3');
}
}
Ensuite, je suis allé encore plus loin et lui ai donné le montant exact que vous souhaitez afficher dans la requête personnalisée var:
function custom_query_vars_filter($vars) {
$vars[] = 'post_per_page_override';
return $vars;
}
add_filter( 'query_vars', 'custom_query_vars_filter' );
add_action( 'pre_get_posts', 'rc_modify_query_get_design_projects' );
function rc_modify_query_get_design_projects( $query ) {
if( $query->query_vars['post_per_page_override']) {
$customPPPlimit = $query->query_vars['post_per_page_override'];
$query->set('posts_per_page', $customPPPlimit);
}
}
Travaillé pour moi ..