Come sconfiggere “pagine blog Visualizza al massimo __ messaggi” impostazione nel ciclo?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/8982

  •  16-10-2019
  •  | 
  •  

Domanda

Sto usando questo script sulla mia archive.php per elencare un elenco di link di tutti i messaggi contenuti nella categoria corrente. Tuttavia, la sua limitando il numero di risultato relativo al numero assegnato a "Impostazioni> Reading> Entra pagine mostrano Alla maggior parte _ i messaggi".

In altre parole, ci possono essere 10 i messaggi che si trovano in questa categoria, ma è solo la visualizzazione fino al numero assegnato in quel contesto.

Come posso cambiare il mio script per ignorare questa impostazione?

<?php if(is_category()) while (have_posts()) : the_post(); ?>
    <li id="post-<?php the_ID(); ?>">
        <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
        <?php the_title(); ?>
        </a> 
        <?php echo get_link_excerpt(); ?>
    </li>
<?php endwhile; } ?>
È stato utile?

Soluzione

Invece di usare il ciclo di default, forse prova a costruire il proprio interrogazione

.

In sostanza, sembrerà qualcosa di simile:

$your_posts = get_posts('cat=123&posts_per_page=123');
foreach ($your_post as $post) {
   do_something-with($post);
}

È possibile visualizzare tutti i messaggi di utilizzare il 'posts_per_page'=>-1 param o nopaging=true.

(non so perché qualcuno ha votato questo giù? IMHO ha detto persona dovrebbe commentare quanto la questione dovrebbe essere migliorata se lei o lui sta per farlo.)

Altri suggerimenti

Per modificare l'impostazione posts_per_page su base contestuale, l'approccio migliore è quello di filtrare la query tramite callback pre_get_posts. Ad esempio, per impostare posts_per_page a 10 per una categoria specifica (ad esempio, categoria ID 7 ):

function wpse8982_filter_pre_get_posts( $query ) {
    if ( $query->is_main_query() && is_category( 7 ) ) {
        $query->set( 'posts_per_page', '10' );
    }
}
add_action( 'pre_get_posts', 'wpse8982_filter_pre_get_posts' );

Si noti che è possibile passare alcuna impostazione valida per posts_per_page .

Se si vuole fare qualcosa di diverso dalle impostazioni predefinite automagici consentono, è necessario prendere il controllo del ciclo. Leggi la documentazione su The Loop e prendere avviso particolare della sezione denominata cicli multipli. Essa mostra modi alternativi di creazione di query e la visualizzazione di cose. Si dovrebbe anche dare un'occhiata alla WP_Query come questo è la chiave per quello che sta succedendo qui.

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