在wordpress中创建用户个人资料页面

时间:2018-09-14 05:59:35

标签: wordpress

我要实现的目标是使网站上的每个用户(wp用户)拥有自己独特的前端个人资料页面,例如site.com/user/userX。 (编辑:为澄清起见,它不是只有用户自己可以看到的设置页面,而是一个开放的个人资料页面,供登录的用户或匿名/访问者访问并查看其个人资料)

我曾考虑过在帖子中使用url GET (site.com/user?name=userX),但wordpress似乎无法理解"?..=..",并说页面不存在。在Wordpress中,这种解决方案似乎不是一个好习惯,因此我尝试从另一个角度来看。

即使那里有几个插件可以为我做更多,但由于我要建立一个多语言网站(使用Polylang),所以我一直坚持手动操作,所以插件只能在主要语言。 简而言之,Polylang通过url(例如:site.com/langX/pageX)跟踪语言,而我尝试过的插件仅停留在一页上。

我倾向于说我正在寻找的是functions.php中让Wordpress理解.../user/页面将在.../user/userX之后这样的名称的一种方式我可以对多种语言使用相同的功能:...langX/user/userX...langY/user/userX ...

如果有人可以让我朝着我应该寻找的正确方向前进,我会很高兴。

1 个答案:

答案 0 :(得分:0)

为了安全起见,您应该在wordpress中创建一条新路由:

function custom_rewrite_basic() {
  add_rewrite_rule('^user/([0-9]+)/?', 'index.php?user_profile=$matches[1]', 'top');
}
add_action('init', 'custom_rewrite_basic');


function custom_rewrite_tag() {
  add_rewrite_tag('%user_profile%', '([^&]+)');
}
add_action('init', 'custom_rewrite_tag', 10, 0);

现在,您可以访问与相同的页面: http://example.com/user/95

您主题中的此代码:

get_header(); 
global $wp_query;
if($wp_query->query_vars['user_profile']) {

//do stuff

}