Formularz logowania w szablonie bez użycia pluginu dla WordPressa
Istnieje bardzo wiele wtyczek dla WordPress’a umożliwiających szybkie dodanie formularza logowania bezpośrednio do dowolnego szablonu. Zastosowanie takiego rozwiązania ma swoje plusy jak i minusy.Pamiętajmy jednak, że WordPress to oprogramowanie o otwartym dostępie do kodu źródłowego, dzięki czemu istnieje wiele możliwości wyświetlenia formularza logowania bezpośrednio z poziomu danego szablonu.
Poniżej znajduje się kod strony wyświetlającej formularz logowania jako zwykłą stronę w danym serwisie internetowym. Cały skrypt należy zapisać w dowolnym pliku o dowolnej nazwie z rozszerzeniem PHP, a następnie umieścić w katalogu (znajdującym się na serwerze): /wp-content/themes/nazwa_szablonu /page-templates.
Kolejnym krokiem jest dodanie nowej strony w Kokpicie WordPress’a oraz wybranie z menu bocznego szablonu o nazwie: Custom WordPress Login.
Stronie tej możemy również nadać tytuł np. Zaloguj, Login… Natomiast tekst, który wpiszecie w edytorze nie zostanie wyświetlony.
<?php /* Template Name: Custom WordPress Login */ global $user_ID; if(!$user_ID) { if($_POST) { //We shall SQL escape all inputs $username = $wpdb->escape($_REQUEST['username']); $password = $wpdb->escape($_REQUEST['password']); $remember = $wpdb->escape($_REQUEST['rememberme']); if($remember) $remember = "true"; else $remember = "false"; $login_data = array(); $login_data['user_login'] = $username; $login_data['user_password'] = $password; $login_data['remember'] = $remember; $user_verify = wp_signon( $login_data, false ); if ( is_wp_error($user_verify) ) { $error = '<span class="error">Podałeś niepoprawny login lub hasło. Spróbuj ponownie!</span>'; } else { header("Location: /"); exit(); } } get_header(); ?> <div id="primary" class="site-content"> <div id="content" role="main" > <div class="login"> <h1><?php the_title(); ?></h1> <?php echo $error; ?> <form id="wp_login_form" action="" method="post"> <input name="login" type="hidden" /> <label>Login:</label> <input name="username" class="text" value="" type="text"> <label>Hasło:</label> <input name="password" class="text" value="" type="password"> <label>Pamiętaj mnie:</label><input name="rememberme" value="forever" class="checkbox" type="checkbox"> <input id="submitbtn" name="submit" value="Zaloguj" type="submit"> </form> </div> </div> </div> <?php get_sidebar(); get_footer(); } else { header("Location: /"); } ?>
Powyższy kod został opracowany na podstawie artykułu: http://www.tutorialstag.com/custom-wordpress-login-without-using-a-plugin.html.