我要实现的目标是使网站上的每个用户(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
...
如果有人可以让我朝着我应该寻找的正确方向前进,我会很高兴。
答案 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
}