第一件事:
类别存档默认使用此永久链接/URL结构:
http://example.com/category/<category slug>/ (for page #1)
http://example.com/category/<category slug>/page/<page number>/ (for page #2, #3, and so on)
所以当你访问
http://example.com/category/accessories/page/2/
, WordPress将自动呼叫
WP_Query
使用的参数从当前页面URL检索:
WP_Query( array(
\'category_name\' => \'accessories\', // the <category slug> in the URL
\'paged\' => 2, // the <page number> in the URL
) );
这是主要的查询。
So when the paged
value is greater than the max number of pages for the main query, then a 404
error page would be displayed. 在你的情况下accessories
是否确实有足够数量的文章供存档页面使用,以获得第#2页?我打赌没有。
第二件事:
类别模板应该只显示通过主查询检索到的帖子:
while ( have_posts() ) {
the_post();
// Display the post.
}
但我在你的代码中没有看到这一点。
第三件事:
您可以使用
pre_get_posts
要通过修改其参数来更改主查询,请执行以下操作:
// This should go in your theme\'s functions.php file.
add_action( \'pre_get_posts\', function ( $query ) {
// Set the number of posts per page to 6, but only on category archives.
if ( ! $query->is_admin && $query->is_main_query() && is_category() ) {
$query->set( \'posts_per_page\', 6 );
}
} );
那么在您的代码中,没有必要这样做:
$args = array(\'posts_per_page\' => 6,\'paged\'=> $paged,);
$tyler_query = new WP_Query( $args ); // secondary query
此外:
更改$tyler_query->have_posts()
到have_posts()
.
然后更改$tyler_query->the_post()
到the_post()
.
只需使用<?php next_posts_link(); ?>
无需通过最大页数($tyler_query->max_num_pages
在代码中)。