Archive.php是';t从一个类别对邮件进行排序
我的存档页面添加了数字分页功能,但它不会对正确的类别进行排序,而是显示所有类别的帖子。假设类别是香蕉(http://localhost/tkeblog/category/bananas/)我从香蕉、橘子和苹果的分类中得到帖子。此外,分页系统不显示带有thumbail的帖子,但它可以在我的index.php页面上运行。我在按类别筛选帖子时做了哪些错误操作Archive.php是';t从一个类别对邮件进行排序,php,wordpress,pagination,wordpress-theming,categories,Php,Wordpress,Pagination,Wordpress Theming,Categories,我的存档页面添加了数字分页功能,但它不会对正确的类别进行排序,而是显示所有类别的帖子。假设类别是香蕉(http://localhost/tkeblog/category/bananas/)我从香蕉、橘子和苹果的分类中得到帖子。此外,分页系统不显示带有thumbail的帖子,但它可以在我的index.php页面上运行。我在按类别筛选帖子时做了哪些错误操作 <?php if ( get_query_var('paged') ) { $paged = get_query_var('paged')
<?php
if ( get_query_var('paged') ) { $paged = get_query_var('paged'); }
elseif ( get_query_var('page') ) { $paged = get_query_var('page'); }
else { $paged = 1; }
query_posts(array(
'post_type' => 'post', // You can add a custom post type if you like
'paged' => $paged,
'posts_per_page' => 5
));
if ( have_posts() ) : the_post(); ?>
<div class="blogitem a">
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part('catalog',get_post_format()); ?>
<?php endwhile; ?>
<div class="pagination">
<?php my_pagination(); ?>
</div>
</div>
<?php else: ?>
<p>Sorry, no posts matched your criteria.</p>
<?php wp_reset_query(); ?>
<?php endif; ?>
抱歉,没有符合您标准的帖子
如果我们查看默认设置,我们可以看到归档模板只是使用默认循环来显示所有类别的所有帖子,而不是自定义查询
我相信这回答了你的问题
<?php
if( have_posts() ):
while( have_posts() ): the_post();
// ... template
endwhile;
else:
// ... fallback
endif; ?>
因为您使用的是“query_posts”(它有点覆盖url中的类别),所以还应该指定“category”参数。(1) Get category:应该使用默认查询,而不是构建查询。
<?php
add_action( 'pre_get_posts', function ( $query ) {
if ( ! is_admin() && $query->is_archive() && $query->is_main_query() ) {
if ( get_query_var( 'post_type' ) == 'post' ) {
$query->set( 'post_type', array( 'post' ) );
$query->set( 'posts_per_page', 12 );
$query->set( 'orderby', array( 'date' ) );
$query->set( 'order', array( 'ASC' ) );
} else {
$query->set( 'posts_per_page', 6 );
$query->set( 'orderby', array( 'date' ) );
$query->set( 'order', array( 'ASC' ) );
};
};
}; ?>