我对如何改变我的$_GET
变量转换为“slug”。我已经设置了parent-page/child-page
使用wp_insert_post
. 但是我想在两者之间添加一个变量,以创建parent-page/?username=bob/child-page
.
我在看add_rewrite_rule 更改格式的步骤index.php?page_id=PAGE_ID&username=bob
到/users/bob/about/
.
我试过这个:
public static function add_rewrite(){
$page=get_page_by_title(\'users\');
add_rewrite_rule(\'^users/([a-zA-Z0-9]+)/?\',\'index.php?page_id=\'.$page->ID.\'&username=$matches[1]\',\'top\');
}
//quickly to show how called.
add_action(\'init\',array(__CLASS__,\'add_rewrite\');
这不管用,但我希望至少能实现
users/username/
这样我以后就可以知道如何添加我的子页面了。
抱歉,我弄糊涂了!!
EDIT!!
我设法解决了我的错误。这就是我迄今为止所取得的成就:
public static function add_vars($public_query_vars){
$public_query_vars[]=\'username\';
return$public_query_vars;
}
public static function addRewriteRule(){
$page=get_page_by_title(\'users\');
//add_rewrite_rule(\'^leaf/([0-9]+)/?\', \'index.php?page_id=$matches[1]\',\'top\');
add_rewrite_rule(\'^users/([^/]+)/?$\',\'index.php?page_id=\'.$page->ID.\'&username=$matches[1]\',\'top\');
}
所以现在我可以访问
get_query_var(\'username\');
但是我仍然无法获取父页面的子页面,有什么想法吗?提前感谢!
最合适的回答,由SO网友:bashleigh 整理而成
找到了解决方案!
我想把事情复杂化。我想到的最好的方法是:
$users=get_page_by_title(\'users\');
$about=get_page_by_title(\'about\');
add_rewrite_rule(\'^users/([^/]*)$\',\'index.php?page_id=\'.$users->ID.\'&username=$matches[1]\',\'top\');
add_rewrite_rule(\'^users/([^/]*)/about/?\',\'index.php?page_id=\'.$about->ID.\'&username=$matches[1]\',\'top\');
还没有出现错误,还没有测试!