PDA

Zobraziť plnú verziu : Ako obmedzit page len pre prihlasenych



exot
18.06.2008, 13:48
potreboval by som page, kde mam fotogaleriu (nextgen) nastavit na prehliadanie iba pre registrovanych, resp. prihlasenych uzivatelov... akym sposobom je to mozne zrealizovat? za radu dakujem

sokrates4612
18.06.2008, 14:42
Takéto niečo som priznám sa ešte neriešil, ale našiel som nejaký návod, ktorý by mohol fungovať: Show certain pages to registered users only (http://wordpress.org/support/topic/170719)

Voľný preklad:

Toto riešenie nie je celkom čisté, ale je rýchle.

Otázka: Ako zobraziť niektoré stránky len pre prihlásených užívateľov?
Odpoveď: Najskôr vložte nasledovný kód do headeru súboru témy, ktorá zobrazuje stránky (obvykle page.php):


<ul>
<?php if ( $user_ID ) : ?>
<?php wp_list_pages('depth=1&title_li=&exclude=' ); ?>
<?php else : ?>
<?php wp_list_pages('depth=1&title_li=&exclude=5' ); ?>
<?php endif; ?>
</ul>Toto zabezpečí, aby sa všetky stránky zobrazili registrovaným užívateľom, ale stránka s ID 5 sa nezobrazí tým, ktorí nie sú prihlásení.

Problém: stránka sa síce neprihláseným nezobrazuje, ale ak poznajú jej skutočné URL, môžu sa na ňu dostať.

Ďalej je potrebné vložiť do page.php kód, ktorý presmeruje/informuje návštevníka, že "Ak chcete zobraziť túto stránku, musíte byť prihlásený." Použil/upravil som na to kód zo súboru comments.php:


<?php if ( is_page('5') && !$user_ID ) : ?>
<p> Ak chcete zobraziť túto stránku, musíte byť <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>">prihlásený</a>. </p>
<?php else : ?>a vložte


<?php endif; ?>pred posledný </div> v šablóne 'page.php'.

Riešenie problému: Teraz sa stránka nezobrazí neprihlásenému ani vtedy, keď pozná jej priamu URL. Namiesto toho zobrazí oznam, že musí byť prihlásený a po kliknutí na odkaz ho presmeruje na prihlasovacie okno. Potom, po prihlásení, mu zobrazí požadovanú stránku.
Dať vedieť, či to fungovalo.

exot
18.06.2008, 14:46
dakujem za rychlu reakciu, vyskusam a dam vediet

exot
04.07.2008, 03:19
dakujem, funguje to dobre

mirius
17.08.2010, 10:19
...ak by ešte niekto hľadal, na tento účel poslúži aj modul User Access Manager (http://www.gm-alex.de/projects/wordpress/plugins/user-access-manager/), prostredníctvom ktorého sa dajú definovať skupiny aj stránky, ktoré majú byť viditeľné pre tú, či onú skupinu.