現在私のウェブサイトのアーカイブページは1ページにつき5つの投稿を表示しています。 1ページあたり100件の投稿に設定する必要があります。
(私のホームページでは1ページに5件の投稿が表示されていますが、変更したくないです)
これが私の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. ?>
私は2つのテーマでアーカイブページを作成しました "Omega" + Quietude
関数ファイルで pre_get_posts
を使用してクエリを変更できます。
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' );
テーマファイルを編集するよりも(そしてWordPressを初めて使用する場合は)最も簡単な方法は、 Custom Post Limits"WordPressプラグインのようなプラグインを使用することです。
ホームページの投稿、検索結果、アーカイブの結果、カテゴリ、作者など、あらゆるパラメータの投稿制限を変更できます。これは非常に用途の広い軽量プラグインです。
(テーマファイルを編集している場合は、子テーマを作成します。 子テーマ"WordPress Codex )