Reklama

Formularz logowania na stronie głównej

Erewhon, pon., 29/12/2008 - 22:20
Kategorie:

medium_wordpress-150x150.pngTo 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>
Średnia: 3.3 (6 głosy(ów))

Odpowiedzi

Ania (niezweryfikowany) komentuje:
pon., 01/11/2010 - 13:05

Witam.

Czy ten skrypt działa na Wordpress 3 ?
Dziękuje za odpowiedź.

Ania z Lublina.
pogoda lublin

Erewhon komentuje:
ś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ł.

Coyot (niezweryfikowany) komentuje:
pon., 11/04/2011 - 01:26

Doskonale działa na 3.1.
Po dodaniu index.php w:


<li> <a href="<?php echo wp_logout_url(get_permalink(index.php)); ?>" title="Wyloguj sie">Wyloguj</a></p></li>

... loguje i wylogowuje na stronie Home.

Dodaj nową odpowiedź

Zawartość pola nie będzie udostępniana publicznie.
  • Adresy internetowe są automatycznie zamieniane w odnośniki, które można kliknąć.
  • Dozwolone znaczniki HTML: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <pre> <blockquote>
  • Znaki końca linii i akapitu dodawane są automatycznie.
CAPTCHA
To pytanie sprawdza czy jesteś człowiekiem, a aby zapobiec przed spamem.
Image CAPTCHA
Enter the characters shown in the image.