Mine?Yours?-Ours!

2008年11月7日星期五

wordpress注册后显示激活链接及密码[转]

原文链接

wordpress mu与wordpress不一样,这个新用户注册后是要求激活的,并且激活的链接会发到你的邮箱,但是在windows下的邮件发送比较麻烦

一朋友问我在windows下能不能解决wordpress mu的新用户注册的问题

那既然邮件收不到,那有两种办法可解决问题:
第一,用户注册后到数据库中查找activation_key,然后到http://$domain/wp-activate.php?key=
后面加上activation_key进行激活,这样虽然可以解决,但是如果注册用户较多,那就比较麻烦了
既然这样不可以,那想到有这个激活的链接,那能不能直接把激活的链接显示出来呢?这样应该可以解决了。

这就是要说的第二种解决办法了:

按照这个思路,查看了wordpress的注册用户的时候的文件,发现按照如下的办法可以显示激活链接

1、修改wp-signup.php文件
修改confirm_blog_signup函数,大概在356行:

  1. // 找到function confirm_blog_signup($domain, $path, $blog_title, $user_name, $user_email, $meta) {

  2. //在"{"符号下另起一行, 并增加下面三行:
  3. global $wpdb;
  4. $bkey=$wpdb->get_var("SELECT activation_key FROM wp_signups WHERE user_login = '$user_name'");
  5. $active_url='http://' . $domain . 'wp-activate.php?key=' . $bkey;
  6. //注: 上面三行就是提取出激活链接地址, 并赋值给active_url.
  7. //(注意: 如果你的blog的url类似于http://domain/blog的话, 那么请将'wp-activate.php?key='修改成'/blog/wp-activate.php?key=', 即增加path部分)

  8. //找到
  9. //在后面增加如下的内容(即在页面显示激活链接)
  10. printf(__('Check this link %2$s is active and click the link given. '),$active_url,$active_url) ?>

2、修改wp-activete.php文件:
大概在57行,也就是if( $signup->domain . $signup->path == ” )的else部分修改为:

  1. printf(__('

    Your blog at %2$s is active. You may now login to your blog using your chosen username of "%3$s". userpass of "%4$s". Please check your email inbox at %5$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can reset your password.

    '), 'http://' . $signup->domain, $signup->domain, $signup->user_login, $signup->user_pass, $signup->user_email, 'http://' . $current_site->domain . $current_site->path . 'wp-login.php?action=lostpassword');

//也就是增加了激活后$signup->user_pass(用户和密码)的显示部分

测试的效果如下,按照步骤新建一个用户testaaa,邮箱testaaa@sina.com
注册到如下图的部分:

点击图中的链接后:

看,显示了用户名和密码了吧,登录后可修改密码。