在category.php页面中,默认帖子会显示在某个具有分页的类别中,而且'类别'已从永久链接设置中删除网址。
不幸的是,它在分页到第二页的同时重定向到404页面。
我甚至试图在wordpress默认2015主题中检查类别分页,它也不会在那里工作。
这是我的category.php,只是用wordpress循环进行测试。
if ( have_posts() ) :
while ( have_posts() ) : the_post();
the_title();
endwhile;
endif;
next_posts_link( 'Older posts' );
previous_posts_link( 'Newer posts' );
注意:如果未从网址中删除类别,则一切正常。
http://www.domain.com/category/my_category/page/2 (works)
http://www.domain.com/my_category/page/2 (doesnt work)
我是否需要添加/修改任何内容才能使其正常工作?
答案 0 :(得分:3)
这是正常现象,请尝试使用以下代码:
add_filter( 'category_rewrite_rules', 'vipx_filter_category_rewrite_rules' );
function vipx_filter_category_rewrite_rules( $rules ) {
$categories = get_categories( array( 'hide_empty' => false ) );
if ( is_array( $categories ) && ! empty( $categories ) ) {
$slugs = array();
foreach ( $categories as $category ) {
if ( is_object( $category ) && ! is_wp_error( $category ) ) {
if ( 0 == $category->category_parent ) {
$slugs[] = $category->slug;
} else {
$slugs[] = trim( get_category_parents( $category->term_id, false, '/', true ), '/' );
}
}
}
if ( ! empty( $slugs ) ) {
$rules = array();
foreach ( $slugs as $slug ) {
$rules[ '(' . $slug . ')/feed/(feed|rdf|rss|rss2|atom)?/?$' ] = 'index.php?category_name=$matches[1]&feed=$matches[2]';
$rules[ '(' . $slug . ')/(feed|rdf|rss|rss2|atom)/?$' ] = 'index.php?category_name=$matches[1]&feed=$matches[2]';
$rules[ '(' . $slug . ')(/page/(\d+)/?)?$' ] = 'index.php?category_name=$matches[1]&paged=$matches[3]';
}
}
}
return $rules;
}
重要编辑:分页中存在错误,10 +页无法正常工作。
现在已修复:(\d)+
已更改为(\d+)
。
希望这会有所帮助:)