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.