在wordpress中创建用户配置文件页面
我试图实现的是让网站上的每个用户(wp用户)都有自己独特的前端配置文件页面,如so在wordpress中创建用户配置文件页面,wordpress,Wordpress,我试图实现的是让网站上的每个用户(wp用户)都有自己独特的前端配置文件页面,如sosite.com/user/userX。(编辑:澄清一下,这不是一个只有用户自己才能看到的设置页面,它是一个开放的配置文件页面,供登录用户或匿名/访问者访问和查看其配置文件) 我想在帖子中使用url GET(site.com/user?name=userX),但wordpress似乎不理解“?…=”,并说页面不存在。这个解决方案在wordpress中看起来不是一个好的实践,所以我试着从另一个角度来看 即使有几个插件
site.com/user/userX
。(编辑:澄清一下,这不是一个只有用户自己才能看到的设置页面,它是一个开放的配置文件页面,供登录用户或匿名/访问者访问和查看其配置文件)
我想在帖子中使用url GET(site.com/user?name=userX)
,但wordpress似乎不理解“?…=”
,并说页面不存在。这个解决方案在wordpress中看起来不是一个好的实践,所以我试着从另一个角度来看
即使有几个插件可以为我做这件事,甚至更多,我仍然坚持手工操作,因为我正在构建一个多语言网站(使用Polylang),所以插件只能在主语言中工作。
简单地说,Polylang通过url跟踪该语言,例如:site.com/langX/pageX
,我尝试的插件只停留在一个页面上
我倾向于说我正在寻找的是函数中的一种方法。php
可以让Wordpress理解一个页面../user/
将在../user/userX
之后有一个名字:…langX/user/userX
,…langY/user/userX
如果有人能告诉我应该寻找什么,我会很高兴。据我所知,您可以尝试从仪表板、命名用户或其他内容创建一个页面。用户登录后,可以在会话中获取用户信息,也可以使用上面提到的查询变量。您可以在Wordpress中创建自定义页面模板,并将该模板分配给页面。在此页面模板中,使用所需的逻辑编写前端html-s。WordPress中的路由通常由WordPress自己处理。因此,创建一个页面将使该路径对您可用,比如
yoursite.com/user
。请阅读WordPress文档下面链接中的页面模板
更新的答案
根据评论
为了安全起见,您应该在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);
现在,您可以访问与以下内容相同的页面:
主题中的以下代码:
get_header();
global $wp_query;
if($wp_query->query_vars['user_profile']) {
//do stuff
}
正如我在问题中所说,这是一个前端访问,所以登录用户和匿名用户都可以查看它。我不可能为在我的网站上注册的每个用户创建一个页面,我希望能够为每个注册的用户创建一个url,这样我就可以构建一个模板来显示信息。匿名用户的数据来自哪里?。您不必为每个用户的页面创建页面。如果是注册用户,您可以使用根据登录用户显示正确信息的同一页面。这不是用户自我页面。正如标题所示,我希望用户拥有配置文件页面。所以任何人都可以看到它。(例如,我正在做的事情,人们可以创建帐户和发布信息,作者需要自己的页面,可以显示各种信息,如姓名、年龄、传记……),然后最好的选择是创建自定义的帖子类型,比如用户。这将在每个用户注册时为其创建一个条目。注册后,触发带有自定义post类型的
wp\u insert\u post
,该自定义post类型将为此保存条目。我不知道还有什么别的办法可以做到。如果这是可以接受的,我可以用相关信息更新我的答案。我想到了这一点,但是,例如,我需要实现代码,以便在每次用户更改帖子时插入、更新和/或删除帖子。此外,数据库中还有冗余,这可能会造成潜在的混乱和难以维护。我很肯定有一个合适的方法来实现这一点,如果插件能够做到这一点,我应该能够。。。我正在钻研一些插件代码和文档,试图弄清楚它们是如何让wordpress理解这种“幻影页面”的,但到目前为止什么都没有。谢谢,路由/路由就是我要找的。即使这比你贴的要复杂一点,我还是找到了一个完整的解释和更多的方法来实现它!在另一篇帖子中找到答案,路由: