0

我有一个基于 WordPress 的网站,它具有我使用 php 和 jQuery 编写的自定义社交网络功能。

现在,当我的用户注册帐户时,WordPress 会自动为他们创建一个页面,地址为 www.mysite.com/members/username,其中“用户名”是他们唯一的 URL 地址。这样,每个成员都有自己的页面,他们可以使用其唯一的 URL 地址访问该页面。

问题是,随着我的会员群不断增长,我意识到我将为每个用户创建数千个个人资料页面,这可能会变得一团糟。

所以我想简化这个过程,而不是为每个用户创建一个 WordPress 页面,而是拥有一个配置文件 WordPress 页面,该页面根据 URL 地址中的“用户名”结尾动态加载其内容。

这可能吗?如果是这样,我该如何开始?

感谢您提前提供的所有帮助。

4

3 回答 3

2
# .htaccess
RewriteRule ^members/([0-9a-z]+)/?$ ?members&username=$1 [NC,L]

// members.php
$username = $_GET['username'];
$result = mysql_query("SELECT age, location FROM members WHERE username = '$username'");
$data = mysql_fetch_assoc($result);

echo "age: ".$data['age'];
echo "location: ".$data['location'];

嗯,类似的东西。并且所有用户都使用相同的页面(文件)members.php。您只需将数据加载到其中,然后打印出详细信息。

于 2012-11-02T14:35:07.083 回答
2

使用 WordPress:

为 /members/username 创建新的重写规则

function members_rewrite_rules()
{
  add_rewrite_rule('members/(.+)/?$', 'index.php?pagename=members&username=$matches[1]', 'top');
}
add_action( 'init', 'members_rewrite_rules' );

将用户名变量添加到 $wp_query。

function members_query_vars($query_vars)
{
  $query_vars[] = 'username';
  return $query_vars;
}
add_filter('query_vars', 'members_query_vars');

然后在您的“会员”模板页面中,您可以获取查询变量并使用它来加载会员资料:

<?php
get_header();
$username = get_query_var('username');
// load the user details using $username
get_footer();
?>
于 2012-11-02T15:57:38.760 回答
0

你想看看URL rewriting

于 2012-11-02T14:25:22.400 回答