Blog tylko dla zarejestrowanych użytkowników

Blog tylko dla zarejestrowanych użytkowników

Wordpress ma domyślnie włączoną opcję rejestracji nowych użytkowników. Pod wieloma względami jest to rzecz przydatna dla administratora bloga. Warto jednak, aby również użytkownik miał z rejestracji jakąś korzyść. Jednym ze sposobów na wyróżnienie zarejestrowanych użytkowników na blogu jest udostępnienie im treści niedostępnej dla pozostałych. Czy też raczej ukrycie jej przed użytkownikiem, który nie dokonał rejestracji. Poniżej dwa proste sposoby na osiągniecie takiego efektu w Wordpressie.

Sposób pierwszy pozwala na wyświetlenie określonych fragmentów treści we wpisie w zależności od tego, czy czytelnik dokonał logowania czy niekoniecznie. Zabawa odbywa się w naszym ulubionym pliku functions.php i opiera się na shortcodes, których podstawowe działanie już opisywałem.

We wspomnianym pliku wklejamy następujący kod:

<?php
function visitor_check_shortcode( $atts, $content = null ) {
if ( ( !is_user_logged_in() && !is_null( $content ) ) || is_feed() )
return $content;
return '';

add_shortcode( 'visitor', 'visitor_check_shortcode' );
?>

Tym sposobem uzyskujemy skrót, który pozwala nam wyświetlać zawartość tylko niezalogowanym użytkownikom. Stanie się tak wtedy, gdy określony fragment tekstu otoczymy znacznikami [visitor] i [/visitor]. W praktyce wygląda to tak:

Treść dla niezalogowanych użytkowników

Analogicznie postępuje się w przypadku ukrywania treści dla czytelnika zarejestrowanego. W tym przypadku shortcode  pozwala na wyświetlenie zawartości tylko tym, którzy są zalogowani. Odpowiedni fragment kodu w functions.php wygląda nastepująco:

<?php
function member_check_shortcode( $atts, $content = null ) {
if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
return $content;
return '';

add_shortcode( 'member', 'member_check_shortcode' );
?>

W tym przypadku, co oczywiste, efekt ukrycia treści osiągamy ujmując ją w znaczniki [member] i [/member].

Co jednak, jeśli chcemy aby niezalogowany czytelnik nie mógł zobaczyć np. odnośnika w szablonie bloga. W ten sposób możemy ukryć zdjęcia z firmowej imprezy, tak aby jedynie pracownicy firmy mogli je oglądać. Rozwiązaniem jest sposób numer dwa, czyli ujęcie linka w następujący fragment kodu:

<?php if (is_user_logged_in() ) { ?>
<li><a href="#">Impreza firmowa u Bogdana</a></li>
<?php } ?>

W takiej sytuacji niezalogowany użytkownik w ogóle nie zobaczy odnośnika, a tym samym nie będzie mieć dostępu do treści, które nie są dla niego przeznaczone.

2 komentarze/y do “Blog tylko dla zarejestrowanych użytkowników”

  1. hmm ciekawe : ) czasem przydaj sie tego typu rzeczy. Dzieki!
    Bartek napisał/a ostatnio na blogu: Krzysiek cz 3

  2. Dzięki, bardzo fajne, proste, przydatne, tylko pasuje zamknąć funkcję:)

Skomentuj