URI重写:处理一个页面

时间:2014-12-16 作者:Olivier Pons

我想做的是:让Wordpress认为我的页面调用了“toto“可从调用”/toto“但也来自”/toto/{alphanum char}“”

我不想制定特殊的重写规则,因为我不想触碰“.htaccess“”文件。

有没有办法在Wordpress中做到这一点?

1 个回复
最合适的回答,由SO网友:cybmeta 整理而成

您必须向WordPress添加重写规则。那可以不用你去碰。htaccess。例如:

add_action(\'init\', \'cyb_rewrite_rule\');
function cyb_rewrite_rule() {
    add_rewrite_rule( \'toto/([^/]+)/?$\', \'index.php?pagename=$matches[1]\', \'top\' );
}
如果需要访问URL的第二部分作为查询变量,可以执行以下操作:

add_action(\'init\', \'cyb_rewrite_rule\');
function cyb_rewrite_rule() {
    add_rewrite_rule( \'toto/([^/]+)/?$\', \'index.php?pagename=$matches[1]&secondpart=$matches[2]\', \'top\' );
}

add_filter(\'query_vars\', \'cyb_add_vars\');
function cyb_add_vars($vars) {
    $vars[] = \'secondpart\';   
    return $vars;
}
现在“secondpart”在查询变量池中可用,您可以使用WordPress函数访问它。例如,想象一下你有这样的URL:“mysite.com/toto/apple”

if( get_query_var( "secondpart" == "apple" ) ) {
    //It matchs
}

结束

相关推荐