在使用wordpress自定义分类法创建好分类,然后在做列表页面需要分页时,发现点击第二页时出现了404,经过反复测试,发现根本就没找到这个列表页面。
第一反应肯定是规则出现问题,于是就开始弄wordpress的规则链接,果不其然确实是规则的问题,下面是解决的代码,将其加到function.php中,并且需要点击 后台“设置->固定链接” 更新
function generate_taxonomy_rewrite_rules( $wp_rewrite )
{
$rules = array();
$post_types = get_post_types( array( 'public' => true, '_builtin' => false ), 'objects' );
foreach ( $post_types as $post_type ) {
$post_type_name = $post_type->name;
$post_type_slug = $post_type->rewrite['slug'];
$rules[$post_type_slug . '/page/([0-9]+)/?$'] = 'index.php?post_type='.$post_type_slug . '&page=' . $wp_rewrite->preg_index( 1 );
}
$wp_rewrite->rules = $rules + $wp_rewrite->rules;
}
add_action('generate_rewrite_rules', 'generate_taxonomy_rewrite_rules');
注意这个是分页的动态地址:’index.php?post_type=’.post_type_slug . ‘&page=’ . wp_rewrite->preg_index( 1 );
若是出现别的地方点击404的问题,十有八九也是这个问题。
欢迎关注我的公众号“xx主题网”,原创技术文章第一时间推送。