繁体   English   中英

WordPress 添加到URL时页面显示404

[英]WordPress page shows 404 when adding to URL

我正在将重写规则添加到我的 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');

但是当我访问带有 url 中附加字符串的页面时,我得到了 404。

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

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

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后。php go 到设置 > 永久链接并点击“保存更改”以重置刷新规则

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');

试试这个:

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/或任何其他在线类似网站上查看正则表达式是否匹配

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM