Displaying A Login Form In Sidebar

Displaying A Login Form In Sidebar In WordPress

In WordPress 2.x and ealier, to display a login form in sidebar, we must use some raw PHP codes. But since version 3.0, WordPress provides new function, wp_login_form(), to make it done easily. In this article, we’ll see how the function wp_login_form() works and how to implement it in WordPress sidebar.

The function
wp_login_form() takes many parameters:
  wp_login_form(array(
     'echo' => true,
     'redirect' => site_url($_SERVER['REQUEST_URI']),     
      'form_id' => 'loginform',
    'label_username' => __('Username'),
      'label_password' => __('Password'),
     'label_remember' => __('Remember Me'),
     'label_log_in' => __('Log In'),
      'id_username' => 'user_login',
    'id_password' => 'user_pass',
    'id_remember' => 'rememberme',
    'id_submit' => 'wp-submit',
    'remember' => true,
    'value_username' => ,
    'value_remember' => false
));
The most important are:
  • echo: display (true) or not (false) login form. If not, it returns HTML string that you can put anywhere. Default is true.
  • redirect: the URL of web page to redirect user to after login. The default value is site_url( $_SERVER['REQUEST_URI'] ), that means current URL.
  • form_id: ID of login form. Default is loginform. You might want to know this for styling the login form.
  • remember: (true/false) Whether to remember the values. Default is true.
To see all parameters and their meanings, you can go to the Codex.
Now, let’s see an example of wp_login_form’s usage. We’ll check if user is logged in or not. If user logged in, we’ll display a greeting and a logout link. If not, we’ll display a login form. So, open your sidebar.php file and paste the following code into it:

  global $user_login;
  if (is_user_logged_in()) {
      echo 'Hello, ', $user_login, '. <a href="', wp_logout_url(), '" title="Logout">Logout</a>';
  } else {
      wp_login_form();
  }

That’s really simple and clean, isn’t it?
Adding a login form in sidebar is a good way to improve user experience in your WordPress blog, especially when you want your users do everything in the front-end only.


No comments:

Post a Comment