如何创建两个单独的注册页面?

时间:2011-02-08 作者:Carson

我正在寻找一种方法,使两个单独的登记页。其中一个将自动将用户分配为subscriber, 而另一个将注册为contributor.

到目前为止,我唯一想到的是在wp登录中复制*register\\u new\\u user*函数。php文件,并对其进行一些自定义。

有什么想法吗?提前谢谢。

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

基本上,您所需要做的就是添加一个名为role的隐藏字段,并将该值设置为您想要在注册表表单上的任何角色。

add_action(\'register_form\',\'show_role_field\');
function show_role_field(){ ?>
<input id="role" type="hidden" tabindex="20" size="25" value= "<?php if (isset($_GET[\'role\'])){echo $_GET[\'role\'];} ?>"  name="role"/>
    <?php
}
下一步是在用户提交注册表时注册该角色。

add_action(\'user_register\', \'register_role\');

function register_role($user_id, $password="", $meta=array()) {

   $userdata = array();
   $userdata[\'ID\'] = $user_id;
   $userdata[\'role\'] = $_POST[\'role\'];

   //only allow if user role is my_role

   if ($userdata[\'role\'] == "my_role"){
      wp_update_user($userdata);
   }
}
现在剩下要做的就是将用户定向到register url,例如,您想要作为查询变量的角色

http://example.com/wp-login.php?action=register&role=my_role
你可以阅读更多http://www.jasarwebsolutions.com/2010/06/27/how-to-change-a-users-role-on-the-wordpress-registration-form/我建议您在保存之前检查是否允许注册该角色,这样您就不会在您的站点中获得一些新管理员。

结束

相关推荐

WordPress循环中的非关闭PHP查询

我在WordPress中有以下查询来调用自定义post meta,一切正常,只有一个例外,无论哪个查询是第二个查询,都没有响应任何内容。很抱歉WordPress的帖子,但对于那些不熟悉\'get_post_meta($post->ID\' 正在检索第一个帖子的帖子ID,然后在第二个帖子中回显相同的帖子ID,我需要关闭第一个查询,但不知道如何关闭。 <h3 class=\"body_heading\"> <?php $soon_e