在WordPress中使用add_rewrite_rules创建页面的子文件夹

时间:2014-04-30 16:55:54

标签: wordpress rewrite

我正在尝试使用add_rewrite_rule

从普通的WordPress页面获取子页面

该页面位于http://example.com/mypage

子文件夹类似于http://example.com/mypage/sub1但可以sub2sub3sub4(名称已知)

页面名称mypage(slug)已知,但页面ID

目前我坚持这样:(简化)

add_action ( 'init', 'my_init' );
add_action ( 'query_vars', 'my_query_vars' );

function my_init(){
    add_rewrite_rule( '([^/]+)/(sub1|sub2|sub3|sub4)/?', 'index.php?my_page=$matches[2]', 'top');
}
function my_query_vars($vars) {
    $vars[] = "my_page";
    return $vars;
}

如果我转到http://example.com/mypage我就在那个页面上(显然),但是mypage/sub1最终会出现在主页上

1 个答案:

答案 0 :(得分:0)

答案很简单。这是修改后的my_init函数:

function my_init(){
    add_rewrite_rule( '([^/]+)/(sub1|sub2|sub3|sub4)/?', 'index.php?pagename=$matches[1]&my_page=$matches[2]', 'top');
}

请注意pagename变量,其中包含当前页面的名称(slug)