By default, Theme My Login includes a minimal stylesheet, titled theme-my-login.css, from the plugin directory. In most cases, this is all the styling needed for a decent looking log in form. However, some themes may “mess it up” or you may just need something more customized. This is where the custom stylesheet comes in to play. If you create a copy of theme-my-login.css in your theme’s directory, this version will be loaded instead of the default version. This is a great way to maintain your customizations between plugin upgrades.
Theme My Login uses most of the same selectors as the default login page. However, for ease of targeting, all Theme My Login forms are wrapper in a DIV with a class of “login” applied. This same DIV also has an ID of “theme-my-login” with the instance appended to it. This is particularly useful when using the template tag or shortcode, as you can assign your own instance with the “instance” argument. You can then use that instance ID to target that particular form.
All of the templates located within /wp-content/plugins/theme-my-login/templates are easily customizable. Just simply pick any template you wish to edit, copy it to your current theme’s directory and edit it as you wish. Theme My Login will always look for templates in your current theme’s directory first, before loading it’s own templates.
User Defined Templates
Templates are also definable in the Theme My Login template tag and shortcode. This means that you can assign a specific template you created for a specific Theme My Login instance within your site.
- Template used for the “login” action. Defaults to login-form.php.
- Template used for the “register” action. Defaults to register-form.php.
- Template used for the “lostpassword” action. Defaults to lostpassword-form.php.
- Template used for the “resetpass” action. Defaults to resetpass-form.php.
- Template used for when a user is logged in. Defaults to user-panel.php.
- Template used for when a user is logged in and the Themed Profiles module is active. Defaults to profile-form.php.
Using your own template
Let’s say you created a specific registration form named my-register-form.php. In order to use that template, you would just define the register_template attribute within the Theme My Login instance.
Using template tag
<?php theme_my_login( array( 'register_form' => 'my-register-form.php' ) ); ?>