Substitui o número padrão de posts a mostrar por um único loop?

3

É possível sobrescrever o conjunto de postagens do blog para serem mostradas por página (conforme definido em Configurações de leitura no admin do WordPress)? Eu quero fazer com que um loop personalizado que eu esteja usando mostrará um número ilimitado.

    
por user1462 07.02.2011 / 21:19

4 respostas

7

O argumento que controla quantas postagens são mostradas na consulta é posts_per_page

<?php query_posts( array( 
                         'post_type' => 'post',
                         'posts_per_page' => -1 ) 
      ); 
?>

Também é importante notar que há um bug no ramo 3.0 que impede que o inteiro -1 exiba todas as postagens. Ele é corrigido em 3.1, mas uma solução alternativa seria usar um número muito alto em vez de -1

veja:

enlace

    
por Chris_O 07.02.2011 / 22:13
1

Claro, altere a consulta adicionando

<?php query_posts('post_type=post&numberposts=-1'); ?>

    
por eileencodes 07.02.2011 / 21:43
1

Eileen está certa, mas é melhor usar argumentos como uma matriz <?php query_posts( array( 'post_type' => 'post', 'numberposts' => -1 ) ); ?>

    
por Ashfame 07.02.2011 / 22:01
0

Eu tive o mesmo problema. Decidi adicionar uma variável personalizada e capturar essa variável durante pre_get_posts para definir o 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');
    }
}

Depois fui ainda mais longe e consegui-o obter o valor exato que você deseja exibir na consulta personalizada 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);
    }
}

Trabalhou para mim ..

    
por Ted 01.03.2017 / 00:08

Tags