
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.


1 comment
Rilwis, you rock, as usual :)