使用其他查询创建子页面/USER/或/MY-PROFILE/LIKE/Author/,如/USER/USER123

时间:2017-03-05 作者:Doctore

我正在创建一些项目,由于任务,我需要:

领域com/user/user123-返回“user123”的个人信息档案

领域com/我的配置文件-返回当前登录用户的配置文件

我试过了add_query_args 或一些教程(likehttp://www.rlmseo.com/blog/passing-get-query-string-parameters-in-wordpress-url/),但这对我不起作用。

也许htaccess方式有一个选项,但这一部分让我很困惑(我的意思是当我使用WordPress方式时)。有什么想法吗?

谢谢

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

如果我很了解你,你可以add_rewrite_rule(); 函数将url映射到特定查询变量。https://codex.wordpress.org/Rewrite_API/add_rewrite_rule

function myfunc_rewrite_rules() {
  add_rewrite_rule(\'user/?([^/]*)\', \'index.php?pagename=user&username=$matches[1]\', \'top\');
 }

 function myfunc_username_query_vars($vars) {
  $vars[] = \'username\';
  return $vars;
 }

add_action(\'init\', \'myfunc_rewrite_rules\');
 //add query vars (username) to wordpress
 add_filter(\'query_vars\', \'myfunc_username_query_vars\');

function myfunc_display() {
  $userpage = get_query_var(\'pagename\');
  $username = get_query_var(\'username\');
  if (\'user\' == $userpage && \'\' == $username ):
   //show all users
   exit;
  elseif (\'user\' == $userpage && \'\' != $username ):
   //show specific user
   exit;
  endif;
 }

 //register plugin custom pages display
 add_filter(\'template_redirect\', \'myfunc_display\');
本教程可以帮助:http://clivern.com/how-to-add-custom-rewrite-rules-in-wordpress/

UPDATE:

运行此代码后,必须转到Settings->Permalinks 只需点击保存按钮即可刷新所有重写规则。(这是许多permalink问题的解决方案)

相关推荐

如何读取WordPress$Query关联数组(散列)键的值

WordPress编程新手(来自更为传统的环境),并试图了解其一些“独特”特性。我们的网站上有一个目录页,此代码驻留在functions.php, 如果条件为true,则调整结果。if( $query->is_post_type_archive( \'directory\' ) ){ ...//do stuff } 我想知道如何获取is_post_type_archive 这就是“目录”当我对值使用测试时。。。var_dumb($query->is_post