Legutóbbi munkánknál egy olyan kéréssel fordultak hozzánk, hogy a weboldalon egyes oldalakat csak regisztrált felhasználók érhessenek el. Ennek megoldására léteznek bővítmények, de egyszerűen is megoldható a dolog, ha a használt sablonod alatt létrehozol egy sablonmintát a tagoknak fenntartott tartalomhoz. Így az adott oldal megtekintése csakis a tagoknak lesz lehetséges bejelentkezés után.
Nézzük a lépéseit. Mi a példa kedvéért a twntyeleven sablont használtuk, hiszen az minden wordpressnél elérhető így követheted a folyamatot. A használt sablonodnál keresd meg a page.php fájlt, Ennek tartalmát másold ki egy jelgyzettömbe (pl. használhatod a Notepad++ programot). Ezután hozz létre egy úgy php fájlt és legyen a neve pl. csak-tagoknak.php és másold bele. Egészítsd ki a következőkkel.
Adj nevet a sablonmintának
A nyitó php után szúrd be a következőket:
[codesyntax lang=”php”]
/** * Template Name: Csak tagoknak - teljes nézet */
[/codesyntax]
Oldal megtekintése csak tagoknak
A get header után korlátozd a hozzáférést a tagsághoz:
[codesyntax lang=”php”]
get_header(); ?> <?php if (is_user_logged_in()) { ?>
[/codesyntax]
A get_footer() elé szúrd be a következő sorokat, így egy információs üzenetet küldhetsz a látogatónak, illetve megkönnyíted a bejelentkezését az űrlappal:
[codesyntax lang=”php”]
<?php } else { // aki nincs bejelentkezve a következő sorokat látja ?> <div id="primary"> <div id="content" role="main"> <p>Bocs, de ezt az oldalt csak tagok látogathatják. Kérjük <a href="<?php bloginfo('wpurl'); ?>/wp-login.php?action=register">regisztrálj</a>. Az adminisztrátorok hamarosan jóváhagyják a regisztrációdat.</p> <p><form name='loginform' id='loginform' action='<?php bloginfo('wpurl'); ?>/wp-login.php' method='post'> <p> <label>Felhasználónév<br /> <input type='text' name='log' id='log' value='' size='20' tabindex='1' /> </label> </p> <p> <label>Jelszó<br /> <input type='password' name='pwd' id='pwd' value='' size='20' tabindex='2' /> </label> </p> <p> <label> <input name='rememberme' type='checkbox' id='rememberme' value='forever' tabindex='3' /> Emlékezzen rám</label> </p> <p class='submit'> <input type='submit' name='submit' id='submit' value='Bejelentkezés »' tabindex='4' /> <?php //használj rejtett mezőt ahhoz, hogy visszairányítsd a korábbi oldalra a felhazsnálót ?> <input type="hidden" name="redirect_to" value="<?php echo $_SERVER["REQUEST_URI"]; ?>" /> </p> </form></p> </div></div> <?php } ?> <?php get_footer(); ?>
[/codesyntax]
Ennyi volt a mutatvány.
Szia!
Köszönöm ezt a tippet, megcsináltam, működik is nagyszerűen, viszont egy olyan gondom van, ami lehet, hogy összefügg ezzel a változtatással.
Az oldalak tartalma nem jelenik meg, csak valami össze-vissza szöveg, ez itt:
$hasSidebar = “”; $sidebar = get_post_meta($post->ID,’wpl_enable_sidebar’,true); get_template_part(‘content’, ‘page’ ) ; if($sidebar==”false” ) { echo ‘
‘; } else { get_sidebar(); }
Tudsz segíteni, mi lehet a gond?
Lehet, hogy az, hogy én az eredeti page.php file-t változtattam meg. Ha ez a gond, hogy tudom az alá létrehozni a módosított csapatpage.php-t létrehozni?
Köszönöm a segítségedet!
Üdv: Szilágyi György
Kedves György! Ahogy a cikkben is leírtuk a hozz létre egy csapatpage.php fájlt és abba másold bele a page tartalmát. A page.php oldalra is szükséged van, tehát az ne változtasd meg.