Today we’re going to explore in-depth the options we have as WordPress developers (and WP site owners) for how we use the WordPress user processes. By user process we’re referring to the combination of user features provided by WP core including user registration, login, login and password reset. As a starting point we have those 4 user functions built-in to WP core, so let’s begin by looking at how they work out of the box and what small enhancements or customizations we can do without any code.
We’ll reference this article from WPBeginners on the basics of enabling user registration on any WP site: https://www.wpbeginner.com/beginners-guide/how-to-allow-user-registration-on-your-wordpress-site/
The standard approach provided by WP core is that if user registration is enabled (under WP Admin > Settings > General > Anyone can register) then the meta widget that is enabled in default sidebars will link to the registration form. That same widget will also switch to show “logout” if the user is already logged in. The screenshots below show how this looks (on a site running the Blocksy theme).
What we get out of the box with WordPress user functions is practical. It just works. What we might not like about it is that the register link is one link alongside others, it’s just a lonely text link in a sidebar. And that sidebar, might not even be displayed by default on many pages of your site. Hardly compelling.
The good news if your goal is to keep things simple and use the default WordPress user registration is that you can create your own more compelling links to the registration page. The link for the registration page is going to be: example.com/wp-login.php?action=register. You’ll find that same page (wp-login.php) is used for the other default user processes in WordPress and the only difference is the action parameter.
Can we get a shout out for the old-school URL’s and using GET params as the logic switch?
In the screenshot below you’ll see an attempt to spice up and improve the visibility of the link to registration. We’ve got a custom title (Open Account) and a compelling message pushing the user to click the registration button. This layout by the way was quickly crafted using Elementor widgets.
To recap what we’ve learned so far, all default user processes provided by WordPress flow through a page named /wp-login.php that is normally found at example.com/wp-login.php. By default visiting this page will show us the login form, but if we add the “action” GET parameter the page can now show us the registration or password retrieve.
The most basic enhancement a WordPress developer can do is to improve the visibility of links to the core WordPress user processes. Below is a full list of links and usage notes for your reference.
|User Login||/wp-login.php||Login will load for user logged in but may not function properly.|
|User Registration||/wp-login.php?action=register||Registration will load for logged in user but may throw validation errors on form submission.|
|User Lost Password||/wp-login.php?action=lostpassword|
|User Logout||/wp-login.php?action=logout&_wpnonce=[nonce]||Requires a security nonce in the URL to work.|