添加 URL 时 WordPress 页面显示 404
P粉569205478
P粉569205478 2024-01-16 13:17:37
0
2
535

我正在向 PHP 脚本添加重写规则,该脚本包含在带有永久链接 kb 的 WordPress 页面中

这样我就可以访问domain.com/kb 并显示该页面。

function wdm_add_rewrite_rules() {
    add_rewrite_rule( '^kb/([^/]+)/?$', 'kb?kb_cat=$matches[1]&kb_seq=1', 'top');
}
add_action('init', 'wdm_add_rewrite_rules');

但是当我访问网址中包含其他字符串的页面时,我收到 404。

所以当我访问domain.com/kb时显示正确的页面,然后访问domain.com/kb/84/92时,它显示404

我只需要能够读取 PHP 脚本中的附加 url 参数,例如 $_GET["kb_cat"]

P粉569205478
P粉569205478

全部回复(2)
P粉949190972

试试这个:

function wdm_add_rewrite_rules() {
    add_rewrite_rule( '^kb\/([^\/]+)\/?([^\/]+)$', 'kb?kb_cat=$matches[1]&kb_seq=1', 'top');
}
add_action('init', 'wdm_add_rewrite_rules');

您可以在 https://regex101.com/ 或任何其他类似在线网站上检查正则表达式为了比赛

P粉105971514
function wdm_add_rewrite_rules() {
    add_rewrite_rule( '^kb$', 'index.php?kb_cat=$matches[1]&kb_seq=1', 'top');
}
add_action('init', 'wdm_add_rewrite_rules');

更进一步并使用参数:

function add_query_vars_filter( $vars ){
    $vars[] = "kb_cat";
    $vars[] = "kb_seq";
    return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );

然后加载自定义模板文件:

function include_custom_template($template){

    if(get_query_var('kb_cat') && get_query_var('kb_seq')){
        $template = get_template_directory() ."/my-custom-template.php";
    } 
   
    return $template;    
}

add_filter('template_include', 'include_custom_template');

添加到 functions.php 后,转到“设置”>“永久链接”并点击“保存更改”以重置刷新规则

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板