
Omezte stránky ve WordPressu tak, aby vyžadovaly přihlášení
Tento týden jsme dokončovali implementaci vlastního motivu na klientský web a oni požadovali, abychom vytvořili nějaký druh interakce, kde by některé stránky byly omezeny na registrované předplatitele. Nejprve jsme uvažovali o implementaci pluginů třetích stran, ale řešení bylo ve skutečnosti celkem jednoduché.
Nejprve jsme zkopírovali šablonu stránky do nového souboru (libovolný název je v pořádku, stačí udržovat příponu php). V horní části stránky nezapomeňte stránku okomentovat, abyste ji mohli vidět v editoru šablon podle názvu:
Dále vyhledejte řádek v kódu vaší stránky, který zobrazuje obsah. Mělo by to vypadat takto:
Nyní budete muset kolem tohoto řádku zabalit nějaký kód:
Pouze předplatitel Je nám líto, obsah, který se pokoušíte získat, je omezen pouze na předplatitele.
Kód začíná kontrolou relace, aby se zjistilo, zda je uživatel přihlášen na váš web WordPress. Pokud jsou přihlášeni, zobrazí se obsah. Pokud nejsou přihlášeni, ve zprávě se uvádí, že se pokoušíte dosáhnout omezeného obsahu.
Chcete-li stránku použít, musíte vybrat Pouze předplatitelé šablony stránky v pokročilé části možností vaší stránky (na postranním panelu). To omezí stránku na přihlášené čtenáře.
Chcete-li mít opravdu chuť, můžete do postranního panelu přidat také metodu přihlášení a odhlášení:
">Odhlásit se /wp-login.php">Přihlášení zákazníka
Pěkný příspěvek ... Překvapuje mě, že to není k dispozici v možnostech Viditelnost.
To je skvělé řešení, Dougu! Skvělý příklad nalezení snadného, ale efektivního řešení.
Užitečný příspěvek, toto. Tuto stránku tweetoval. Mám však otázku.
Co když chcete ukázat část stránky blogu všem návštěvníkům, ale celou pouze předplatitelům?
Ahoj partha,
To by bylo docela jednoduché - do záhlaví stránky můžete přidat stejnou techniku a v zásadě říci ... if (no userid AND page not equal to pagename) then header forward to the login page.
Doug
skvělé elegantní řešení! přesně to, co jsem potřeboval, jsem vážně uvažoval o vytvoření externího přihlašovacího systému.
tohle skály!
To NENÍ uživatelsky přívětivé pro lidi, kteří se učí. Není vůbec uživatelsky přívětivý !!!!
Tohle pro newbyho rozhodně nenapsal. Omlouvám se Devs_mum!
Není to uživatelsky přívětivé, ale to je v pořádku ... Mám pocit, že by pomohly některé obrázky toho, co mám dělat. Jinak ... prostě zkusím věci, dokud to nebude fungovat!
zkopírujte page.php, přejmenujte page2.php a vložte kód výše, uložte soubor, nahrajte zpět na obsah / téma / cokoli jiného, přejděte na příspěvek nebo změňte výchozí rozložení stránky na page2.php. Není třeba vytvářet nový styl / rozvržení stránky, stačí zkopírovat ten, který používáte, a přejmenovat ho. fullwidth.php je fullwidth2.php tak jednoduchý.
Dobře, takže po MNOHÝCH pokusech a sledování dalších tutoriálů na internetu ... Zjistil jsem, že VYTVOŘENÍ nové šablony stránky je můj problém. Vytvořím jeden v textovém editoru a pokusím se jej nahrát na ... kam? Ani nevím, kam jít. Zdá se mi, že nenajdu toto tajné umístění k nahrání!
Tak pravda, LaRocque! Abyste mohli soubor nahrát, musíte mít program FTP a přístup do složky motivů svého webu. V současné době neexistuje žádný způsob, jak to udělat prostřednictvím obrazovky pro správu. Jedinou výjimkou by byla instalace pluginu „Správce souborů“, který vám umožní vytvářet nové soubory. Buďte opatrní!
Nebo jen použijte - není třeba načítat celý objekt uživatele.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
Nebo jen použijte - není třeba načítat celý objekt uživatele.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
Nebo jen použijte - není třeba načítat celý objekt uživatele.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
Nebo jen použijte - není třeba načítat celý objekt uživatele.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
Určitě můžete zkontrolovat, zda je uživatel přihlášen; výše definovaná metoda vám však nakonec umožní používat úrovně oprávnění, pokud si chcete úrovně upravit!
Nebo jen použijte - není třeba načítat celý objekt uživatele.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
Nebo jen použijte - není třeba načítat celý objekt uživatele.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
Dobře, tak kousnu ... Jak byste to upravili tak, aby umožňovaly kontrolu oprávnění?
Řekněme - stále chceme umožnit komukoli vytvořit si vlastní uživatelské jméno „Odběratel“ a zveřejňovat odpovědi.
ALE - přístup na stránku „Pouze pro předplatitele“ udělujeme pouze těm uživatelům, které určí správce?
Díky moc!
Douglas - použil jsem tvůj kód - a většinou funguje skvěle! Problém, který mám, je, že odkaz Odhlásit se vrací na web, který neexistuje. Vlastně jsem vyzkoušel několik wordpressových kódů z celého webu, aby odhlášení fungovalo. . . ale uživatel stále zůstane přihlášen a návratnost je //wp-login.php?redirect_to=~>log%20in%20%20%20%20%20%20%20%20%20%20%20%20 % 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20
Nějaké nápady?
Vypadá to, že se může stát, že když byl kód zkopírován z vašeho prohlížeče, přidal spoustu prostorů HTML, Ryane. Zkopírujte kód do programu Poznámkový blok nebo Textpad a poté jej zkopírujte do své šablony, abyste se těchto věcí zbavili.
Dobře, takže to je přesně to, co musím udělat, ale mám jednu otázku. Pokud nejsou předplatitelem, jak zobrazím pole „přihlásit se“ nebo „přihlásit se k odběru“, aby měli přístup k obsahu?
Díky
Za prohlášení else můžete umístit odkaz, kde výše máme „Je nám líto…“.
Díky za kód. lidi na mě naštve, ale domnívají se, že se přihlásí, když chtějí, aby něco neumožňovalo všem volný přístup, aby bylo možné soubory snadno najít.
Vypadá to, že tato metoda podléhá únosu relace. Přihlašovací soubor cookie bude přidán v zabezpečené oblasti, ale protože WordPress slouží jako nezabezpečený soubor cookie, bude se nadále zobrazovat, pokud uživatel přejde zpět na část webu, která není šifrovaná.
Nejedná se o hack, využívá funkce API WordPress - a neobchází žádné zabezpečení ani nepřistupuje přímo k relaci nebo cookie.
díky moc používá příkaz if k provedení kontejneru div, pokud je uživatel členem
vaše řešení bylo skvělé