category.php中自定义的帖子数量

时间:2015-06-05 09:08:19

标签: wordpress categories custom-post-type

我想在category.php中设置不同数量的帖子。我希望每页显示15篇文章,并加以分页。

我正在使用二十四个主题。我怎样才能做到这一点?

我的代码是:

 
<?php
 
get_header(); ?>

	<section id="primary" class="content-area">
		<div id="content" class="site-content" role="main">
  
 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); 
  

 ?>
  
 		<div class="post-cat">
 	  
<?php 
if ( has_post_thumbnail() ) { 
	the_post_thumbnail();
} 
?>
 	<h2><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> 
<p><?php the_category( ', ' ); ?></p>
 <?php endwhile; else : ?> 
 	<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>

 
 <?php endif; ?>
		</div><!-- #content -->
	</section><!-- #primary -->

<?php
get_sidebar( 'content' );
get_sidebar();
get_footer();

2 个答案:

答案 0 :(得分:3)

在二十四个中已经很好地设置了所有内容,因此您不需要使用自定义查询修改任何内容。

这是你应该做的:

  • 创建child theme,以便您可以进行修改,以免丢失任何有关更新的工作

  • 使用add_action( 'pre_get_posts', function ( $query ) { if ( !is_admin() && $query->is_main_query() && $query->is_category() ) { $query->set( 'posts_per_page', 15 ); } }); 调整类别页面上的主查询,以显示每页15个帖子。

将以下内容添加到您的子主题functions.php或自定义插件(请注意,由于使用了闭包,您需要安装PHP 5.3+才能正常工作

img

答案 1 :(得分:1)

试试这段代码。

<?php

get_header(); ?>

    <section id="primary" class="content-area">
        <div id="content" class="site-content" role="main">

 <?php 

$query = new WP_Query(array(
    'posts_per_page'   => 15
));


 if ( have_posts() ) : while ($query->have_posts()): $query->the_post(); 


 ?>

        <div class="post-cat">

<?php 
if ( has_post_thumbnail() ) { 
    the_post_thumbnail();
} 
?>
    <h2><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> 
<p><?php the_category( ', ' ); ?></p>
 <?php endwhile; else : ?> 
    <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>


 <?php endif; ?>
        </div><!-- #content -->
    </section><!-- #primary -->

<?php
get_sidebar( 'content' );
get_sidebar();
get_footer();


 ?>