如何解决添加自定义永久链接和重写规则后,博客分页抛出 404
我在我的网站中添加了以下脚本来设置自定义语言 slug,如 th、se 等。
在添加下面的脚本后,我的页面工作正常。
问题:但我的博客分页就像抛出 404 错误。
脚本自定义永久链接和重写规则
/*---------------Page permalinks ---------------*/
add_filter( 'page_link','prefix_custom_link_option',10,3 );
function prefix_custom_link_option($link,$post_id,$sample){
global $wp_rewrite;
$category = get_the_terms($post_id,"nk-post-translation");
$post = get_post($post_id);
if (!empty($category) && $category[0]->slug == "th") {
$link = str_replace(home_url(),home_url('th'),$link);
} elseif (!empty($category) && $category[0]->slug == "se") {
$link = str_replace(home_url(),home_url('se'),$link);
} else {
$link = str_replace(home_url(),home_url(),$link);
}
return $link;
}
/*-----------------page rewrite rule -----------*/
add_filter('page_rewrite_rules','my_new_page_rewrite_rules');
function my_new_page_rewrite_rules($page_rewrite) {
$rules['^th/(.*)'] = 'index.php?&pagename=$matches[1]'; //for thai pages
$rules['^se/(.*)'] = 'index.php?&pagename=$matches[1]'; //for swedish pages
$rules['^(.*)'] = 'index.php?&pagename=$matches[1]'; //for default or english pages
return $rules;
}
add_filter('post_link','custom_permalink',3);
add_filter('post_rewrite_rules','wp_insertMyRewriteRules');
//rewrite_rules_array
add_filter('init','flushRules');
// creating of post permalink from taxonomy slug
function custom_permalink($permalink,$post,$leavename) {
$category = get_the_terms($post->ID,"nk-post-translation");
if (!empty($category) && $category[0]->slug == "th") {
$permalink = str_replace(home_url(),$permalink);
} elseif (!empty($category) && $category[0]->slug == "se") {
$permalink = str_replace(home_url(),$permalink);
} else {
$permalink = str_replace(home_url(),$permalink);
}
return $permalink;
}
//flush the existing rules of taxonomy slug rules
function flushRules() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
// inserting new rules of taxonomy slug
function wp_insertMyRewriteRules($post_rewrite) {
$post_type = 'post';
$rules['^th/(.*)$'] = 'index.php?post_type=' . $post_type . '&post=$matches[1]&name=$matches[1]';
$rules['^se/(.*)$'] = 'index.php?post_type=' . $post_type . '&post=$matches[1]&name=$matches[1]';
$rules['^(.*)$'] = 'index.php?post_type=' . $post_type . '&post=$matches[1]&name=$matches[1]';
return $rules;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。