网友留言,想实现WordPress在前台注册的功能,联想之前写的教程:WordPress添加投稿功能,实现方法很类似,趁着今天休息,琢磨了一下,很快实现了WordPress前台的注册的功能。下面分享具体方法:
一、添加注册表单
1、首先在当前主题的目录下新建一个php文件,命名为reg-page.php,然后将page.php中的所有代码复制到reg-page.php中;
2、删除reg-page.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容;
3、搜索:the_content,可以查找到类似代码<?php the_content(); ?>,将其替换成代码一(注意使用UTF-8编码保存)
如果你在reg-page.php中找不到the_content,那么你可以查找:get_template_part,可找到类似代码:<?php get_template_part( 'content', 'page' ); ?>,将content-page.php中的所有代码替换这部分代码即可。再用下面的代码替换<?php the_content(); ?>
代码一
<?php the_content(); ?>
<?php if(!empty($error)) {
echo '<p class="ludou-error">'.$error.'</p>';
}
if (!is_user_logged_in()) { ?>
<form name="registerform" method="post" action="<?php echo home_url(add_query_arg(array(),$wp->request)); ?>" class="ludou-reg">
<p>
<label for="user_login">用户名<br />
<input type="text" name="user_login" id="user_login" class="input" value="<?php if(!empty($sanitized_user_login)) echo $sanitized_user_login; ?>" size="20" />
</label>
</p>
<p>
<label for="user_email">电子邮件<br />
<input type="text" name="user_email" id="user_email" class="input" value="<?php if(!empty($user_email)) echo $user_email; ?>" size="25" />
</label>
</p>
<p>
<label for="user_pwd1">密码(至少6位)<br />
<input id="user_pwd1" class="input" type="password" tabindex="21" size="25" value="" name="user_pass" />
</label>
</p>
<p>
<label for="user_pwd2">重复密码<br />
<input id="user_pwd2" class="input" type="password" tabindex="21" size="25" value="" name="user_pass2" />
</label>
</p>
<p class="submit">
<input type="hidden" name="ludou_reg" value="ok" />
<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="注册" />
</p>
</form>
<?php } else {
echo '<p class="ludou-error">您已注册成功,并已登录!</p>';
} ?>