Actuellement, la page d’archive de mon site Web affiche 5 messages par page. Je dois le régler à 100 post par page.
(Ma page d'accueil affiche 5 messages par page et je ne veux pas le changer.)
Voici mon archive.php
<?php get_header(); ?>
<?php do_atomic( 'before_content' ); // my-life_before_content ?>
<div id="content">
<?php if (have_posts()) : ?>
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<?php /* If this is a category archive */ if (is_category()) { ?>
<h2>Archive for the ‘<?php single_cat_title(); ?>’ Category</h2>
<?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
<h2>Posts Tagged ‘<?php single_tag_title(); ?>’</h2>
<?php /* If this is a daily archive */ } elseif (is_day()) { ?>
<h2>Archive for <?php the_time('F jS, Y'); ?></h2>
<?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
<h2>Archive for <?php the_time('F, Y'); ?></h2>
<?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
<h2>Archive for <?php the_time('Y'); ?></h2>
<?php /* If this is an author archive */ } elseif (is_author()) { ?>
<h2>Author Archive</h2>
<?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
<h2>Blog Archives</h2>
<?php } ?>
<?php if ( is_paged() || count($posts) >= get_option('posts_per_page') ) : ?>
<div class="post_meta archive_pagination">
<div class="left"><?php next_posts_link('« Older Entries') ?></div>
<div class="right"><?php previous_posts_link('Newer Entries »') ?></div>
<div class="clearer"> </div>
</div>
<?php else : ?>
<div class="content_separator"></div>
<?php endif;?>
<?php while (have_posts()) : the_post(); ?>
<div class="archive_post">
<div class="archive_post_date">
<div class="archive_post_day"><?php the_time('j') ?></div>
<div class="archive_post_month"><?php echo strtoupper(get_the_time('M')); ?></div>
</div>
<div class="archive_post_title">
<h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
<div class="post_date">Posted in: <div class="freetory"><?php the_category(', ') ?></div> |<div class="freetory"><?php the_tags(' '); ?></div></div>
</div>
<div class="clearer"> </div>
</div>
<?php endwhile; ?>
<?php if ( is_paged() || count($posts) >= get_option('posts_per_page') ) : ?>
<div class="post_meta archive_pagination">
<div class="left"><?php next_posts_link('« Older Entries') ?></div>
<div class="right"><?php previous_posts_link('Newer Entries »') ?></div>
<div class="clearer"> </div>
</div>
<?php endif;?>
<?php else : ?>
<p>No posts found.</p>
<?php endif; ?>
<?php do_atomic( 'close_content' ); // my-life_close_content ?>
<?php get_template_part( 'loop-nav' ); // Loads the loop-nav.php template. ?>
</div><!-- #content -->
<?php do_atomic( 'after_content' ); // my-life_after_content ?>
<?php get_footer(); // Loads the footer.php template. ?>
J'ai créé la page d'archive via deux thèmes "Omega" + Quietude
Vous pouvez utiliser pre_get_posts
dans votre fichier de fonctions pour modifier la requête.
function wpsites_query( $query ) {
if ( $query->is_archive() && $query->is_main_query() && !is_admin() ) {
$query->set( 'posts_per_page', 100 );
}
}
add_action( 'pre_get_posts', 'wpsites_query' );
La chose la plus simple à faire plutôt que d’éditer des fichiers de thème (et si vous êtes nouveau dans WordPress) est d’utiliser un plugin tel que Custom Post Limits "Plugins WordPress.
Vous pouvez modifier les limites de publication pour n’importe quel paramètre: publications de la page d’accueil, résultats de la recherche, résultats de l’archive, catégories, auteurs, etc. C’est un plugin léger très polyvalent.
(Et créer un thème enfant si vous modifiez des fichiers de thème: Thèmes enfants "Codex WordPress )