添加自定义插件:父页面/用户名/子页面/

时间:2015-09-23 作者:bashleigh

我对如何改变我的$_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\'); 但是我仍然无法获取父页面的子页面,有什么想法吗?提前感谢!

1 个回复
最合适的回答,由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\');
还没有出现错误,还没有测试!

相关推荐