WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've been reading around and looking for a front-end signup form (not using plugins!) and came across this - http://net.tutsplus.com/tutorials/wordpress/quick-tip-making-a-fancy-wordpress-register-form-from-scratch/

    <div id="register-form">
    <div class="title">
        <h1>Register your Account</h1>
        <span>Sign Up with us and Enjoy!</span>
        <form action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post">
        <input type="text" name="user_login" value="Username" id="user_login" class="input" />
        <input type="text" name="user_email" value="E-Mail" id="user_email" class="input"  />
            <?php do_action('register_form'); ?>
            <input type="submit" value="Register" id="register" />
        <hr />
        <p class="statement">A password will be e-mailed to you.</p>


It's almost everything I need but there are a few things missing in terms of the fields. Is it possible to add extra fields to the front end signup form that will be saved in and displayed in the backend?

share|improve this question
Please show your code, your effort/what you tried and what's not working. – kaiser Sep 3 '12 at 15:09
@kaiser I'm using the tutorial at the moment and looking around how to add custom fields, so that's where I am at the moment. – Rob Sep 3 '12 at 15:17
So what's the problem with showing your current state with code? – kaiser Sep 3 '12 at 15:25
@kaiser Updated question... it's straight from the tutorial at the moment. – Rob Sep 3 '12 at 15:27
Please search the site, try something and report with something like "this doesn't work for me, because of (...)". Thanks. – kaiser Sep 3 '12 at 16:24

You can read a somewhat extensive tutorial over at:


Basically this is what you're going to be using to add them to the backend:

add_action( 'show_user_profile', 'show_extra_profile_fields', 10 );
add_action( 'edit_user_profile', 'show_extra_profile_fields', 10 );

function show_extra_profile_fields( $user ) { ?>
    <input type="text" name="twitter" value="<?php echo esc_attr( get_the_author_meta( 'twitter', $user->ID ) ); ?>" />
<?php }

and to save them when the user or admin updates the profile:

add_action( 'personal_options_update', 'save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_profile_fields' );

function save_extra_profile_fields( $user_id ) {
    if ( !current_user_can( 'edit_user', $user_id ) )
        return false;
    update_usermeta( $user_id, 'twitter', $_POST['twitter'] );

Next step is to add/save these extra fields to the form you're building and use:

update_usermeta( $new_user, 'twitter', esc_attr( $_POST['twitter']  ) );    

to save them from the front-end when the user registers.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.