我需要创建一个接受2个变量的重写规则。我对这一点很陌生,不确定自己是否走上了正确的轨道。如果有更好的解决方案来解决我想要实现的目标,我愿意听取建议。
url应该如下所示:localhost/states/id/state slug
以下是我所拥有的:
function prefix_movie_rewrite_rule() {
add_rewrite_rule ( \'states/([A-Za-z0-9\\-\\_]+)\', \'index.php?
state_id=$matches[1]\', \'top\' );
add_rewrite_rule ( \'states/([A-Za-z0-9\\-\\_]+)/state([A-Za-z0-9\\-\\_]+)\',
\'index.php?state_id=$matches[1]&state=$matches[2]\', \'top\' );
}
add_action( \'init\', \'prefix_movie_rewrite_rule\');
使用我所拥有的,我可以得到第一个变量(state\\u id),但不能得到第二个变量(state)。
最合适的回答,由SO网友:Dominick Allen 整理而成
在我做了很多努力之后,我发现了问题所在。
我需要使用add\\u rewrite\\u tag()函数来告诉wordpress允许我的查询变量。
function prefix_movie_rewrite_rule() {
add_rewrite_tag(\'%state_id%\', \'([A-Za-z0-9\\-\\_]+)\');
add_rewrite_tag(\'%state%\', \'([A-Za-z0-9\\-\\_]+)\');
add_rewrite_rule ( \'states/([A-Za-z0-9\\-\\_]+)/([A-Za-z0-9\\-\\_]+)\', \'index.php?
state_id=$matches[1]&state=$matches[2]\', \'top\' );
}
add_action( \'init\', \'prefix_movie_rewrite_rule\');