To co nie podoba mi się w Wordpress-ie to, że aby zwykły użytkownik musiał się zalogować musi być przekierowany do specjalnego panelu administracyjnego.
Wielu niezaawansowanych użytkowników może być zdezorientowanych, kiedy traci im się znana strona a pokazuje nieznany serwis (panel administracyjny).
Wordpress jest elastyczny więc chwila szukania w internecie przynosi rozwiązanie.
Wzorowałem się na opisie How to place a login form in the sidebar.
Niestety wylogowanie użytkownika z wymienionego opisu dla wersji 2.7 nie działa.
Przyczyną takiego zachowania była funkcja wylogowująca wp_loginout(), którą należało zamienić na wp_logout_url().
A oto pełen poprawiony kod:
<li>
<?php global $user_ID, $user_identity, $user_level ?>
<?php if ( $user_ID ) : ?>
<h2>Panel uzytkownika</h2>
<ul>
<li>Zalogowany <strong><?php echo $user_identity ?></strong>.
<ul>
<li><a href="<?php bloginfo('url') ?>/wp-admin/">Panel</a></li>
<?php if ( $user_level >= 1 ) : ?>
<li><a href="<?php bloginfo('url') ?>/wp-admin/post-new.php">Napisz artykuł</a></li>
<?php endif // $user_level >= 1 ?>
<li><a href="<?php bloginfo('url') ?>/wp-admin/profile.php">Twój profil</a></li>
<li> <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Wyloguj sie">Wyloguj</a></p></li>
</ul>
</li>
</ul>
<?php elseif ( get_option('users_can_register') ) : ?>
<h2>Panel logowania</h2>
<ul>
<li>
<form action="<?php bloginfo('url') ?>/wp-login.php" method="post">
<p>
<label for="log"><input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="20" /> Użytkownik</label><br />
<label for="pwd"><input type="password" name="pwd" id="pwd" size="20" /> Hasło</label><br />
<input type="submit" name="submit" value="Zaloguj" class="button" />
<label for="rememberme"><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Pamiętaj</label><br />
</p>
<input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?>"/>
</form>
</li>
<li><a href="<?php bloginfo('url') ?>/wp-register.php">Zarejestruj się</a></li>
<li><a href="<?php bloginfo('url') ?>/wp-login.php?action=lostpassword">Odzyskaj hasło</a></li>
</ul>
<?php endif // get_option('users_can_register') ?>
</li>





Odpowiedzi
pon., 01/11/2010 - 13:05
Witam.
Czy ten skrypt działa na Wordpress 3 ?
Dziękuje za odpowiedź.
Ania z Lublina.
pogoda lublin
śr., 03/11/2010 - 21:04
Nie mam pojęcia, bo na trójce tego nie testowałem.
Nie "bawię" się już wordpresem wolny czas poświęcam Drupalowi.
Nie pozostaje nic innego jak poprosić kogoś kto ma trójkę zainstalowaną, aby to przetestował.
pon., 11/04/2011 - 01:26
Doskonale działa na 3.1.
Po dodaniu index.php w:
... loguje i wylogowuje na stronie Home.
Dodaj nową odpowiedź