Domanda

Is è possibile ignorare il set # di post di blog da mostrare per pagina (come definito in Impostazioni di lettura nella amministrazione di WordPress)? Voglio fare in modo un ciclo personalizzato che sto usando mostrerà un numero illimitato.

È stato utile?

Soluzione

L'argomento che controlla il numero di messaggi sono visualizzati nella query è posts_per_page

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

Anche da notare è che c'è un bug nel ramo 3.0 che impedisce il -1 intero da visualizzare tutti i messaggi. Si fissa in 3.1 ma una soluzione potrebbe essere quella di utilizzare un numero molto alto anziché -1

vedi:

http://core.trac.wordpress.org/ticket/15150

Altri suggerimenti

Certo, modificare la query aggiungendo

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

Eileen è giusto, ma è meglio usare argomenti come array <?php query_posts( array( 'post_type' => 'post', 'numberposts' => -1 ) ); ?>

Ho avuto lo stesso problema .. Ho deciso di aggiungere una variabile personalizzata e poi prendere quella variabile durante pre_get_posts per impostare il query_var post_per_page:

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');
    }
}

Poi sono andato anche oltre e farlo ottenere l'importo esatto che si desidera visualizzare nella query personalizzata 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);
    }
}

Ha lavorato per me ..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top