scribble

守望的麦子

About Projects Tool Guestbook

17 Jan 2011
WordPress注册后直接显示密码

WordPress 的用户注册机制是,填写用户名、邮箱,由 WordPress 生成随机密码,并发送到用户注册时填写的邮箱地址。但很多人的服务器并没有配置邮件服务或者邮件发送会长时间延迟(比如我正在使用的GoDaddy主机),或者由于邮件运行商的反垃圾邮件功能等原因,导致注册之后收不到WordPress发送的密码邮件,无法完成注册。

既然如此,不如我们 hacks 一下 WordPress。让 WordPress 注册后直接显示密码。

怎么改呢?很简单,只需改动 WordPress 根目录下的 wp-login.php 即可。

1、搜索下面这句,位于 register_new_user 函数中。用于注册成功后发送通知。找到后把它注释掉(当然如果你希望保留邮件发送功能则无须注释掉)。

wp_new_user_notification($user_id, $user_pass);

2、并在上面这句的下一行加上两句:

setcookie("u", $user_login);
setcookie("user_pass", $user_pass);

这两行的目的是把注册时填写的用户名,以及 WordPress 随机生成的密码写入cookies,以便在后面调用。

3、搜索下面这句

$errors->add('registered', __('Registration complete. Please check your e-mail.'), 'message');

并把它替换为

$errors->add('registered', __('Registration complete!<br />Username: '.$_COOKIE['u'].'<br />Password: '.$_COOKIE['user_pass'].'<br />(You can modify your password after you login)'), 'message');

中文版:

$errors->add('registered', __(' ^__^ 注册成功!<br />用户名:'.$_COOKIE['u'].'<br />密码:'.$_COOKIE['user_pass'].'<br />(登录后可以修改为便于记忆的密码)'), 'message');

注:文件包含有中文,需要另存为utf8的格式。

到此,就修改完成了。保存,上传。

注:本文基于 WordPress 2.6.1,在3.0.4版本上测试可用。

Til next time,
Jason at 00:00

scribble

About Projects Tool Guestbook