Ograniczanie dostępu do stron WordPress i tworzenie obszaru członkowskiego

Opublikowany: 2016-02-10

Chcesz opublikować kursy premium lub jakiś produkt informacyjny? Możesz ograniczyć zawartość WordPressa tylko dla tych czytelników/członków, którzy za to płacą. I ukryj treści dla zwykłych odwiedzających. Dzięki WordPress możesz łatwo chronić takie informacje, korzystając z różnych ograniczeń treści, które WordPress obsługuje od razu po wyjęciu z pudełka lub za pomocą wtyczek.

Omówimy te różne metody w tym artykule. Omówimy:

  • Różnica między stronami chronionymi hasłem a prywatnymi (i gdzie oba rozwiązania są niewystarczające)
  • 2-minutowy hack umożliwiający utworzenie prostego obszaru członkowskiego w witrynie WordPress (bez użycia wtyczki)
  • Wyświetlanie artykułów z bazy wiedzy w Obszarze członkowskim (ta sekcja jest dla Ciebie, JEŚLI korzystasz z naszego motywu KnowAll lub rozwiązania Heroic Knowledge Base)
  • Darmowe wtyczki, które pomogą Ci kontrolować dostęp do stron, postów i innych treści Twojej witryny

Zacznijmy od zrozumienia różnicy między treściami chronionymi hasłem a treściami prywatnymi.

Utwórz prywatną bazę wiedzy — w prosty sposób!

Zbuduj w prosty sposób prywatną bazę wiedzy z możliwością przeszukiwania dzięki Heroic Knowledge Base.

Pobierz wtyczkę

Ochrona hasłem a prywatna

Najprostszym sposobem ograniczenia dostępu do określonej strony (lub innej zawartości posta) jest użycie różnych ustawień „ Widoczność ”, które domyślnie zapewnia WordPress.

Możesz znaleźć te opcje w prawym panelu, gdziekolwiek dodasz nową stronę lub post:

W ustawieniach Widoczności dostępne są 3 opcje widoczności strony (lub postu):

  1. Publiczny — przy tym ustawieniu domyślnym zawartość jest dostępna dla wszystkich odwiedzających witrynę
  2. Ochrona hasłem – tutaj tylko czytelnicy posiadający hasło do strony (lub postu) mogą odblokować dostęp do treści
  3. Prywatne — ta opcja zapewnia dostęp określonym użytkownikom na podstawie ich roli

Druga i trzecia opcja widoczności pozwalają ograniczyć niektóre treści.

Zobaczmy jak:

1. Ochrona hasłem stron/postów

Jest to bardzo prosta opcja, dająca możliwość zabezpieczenia hasłem poszczególnych stron i postów poprzez proste przypisanie hasła do tej strony (lub postu).

Każdy, kto zna hasło (hasła) może uzyskać dostęp do treści.

Teraz ta opcja działa, jeśli masz stronę lub dwie, które chcesz ukryć przed opinią publiczną. Jednak możesz sobie wyobrazić, że jeśli masz setki artykułów do ochrony, będziesz musiał utrzymywać i rozpowszechniać setki haseł wśród wszystkich uprawnionych czytelników.

Innym problemem związanym z tą metodą jest to, że jeśli użytkownik znajdzie taką zawartość lub kliknie łącze do takiej strony chronionej hasłem, zobaczy ekran z prośbą o podanie hasła, dzięki czemu będzie wiedział, że w Twojej witrynie znajduje się jakaś chroniona lub ekskluzywna zawartość . Tak więc, jeśli nie chcesz, aby ludzie, którzy nie mają dostępu, dowiedzieli się o tych treściach, ta metoda nie rozwiąże twojego celu.

Poniższy zrzut ekranu przedstawia przykład zasobu chronionego hasłem:

Ponadto zabezpieczenie strony hasłem nie powoduje usunięcia tej strony z witryny, jeśli nie masz uprawnień do jej przeglądania. Zamiast tego na początku tytułu dodaje się słowo „ Protected: ”, co ma swoje zastosowania, ale nie jest to idealne rozwiązanie, jeśli nie chcesz, aby ludzie wiedzieli, że w witrynie znajdują się prywatne treści.

chronione-artykuly

2) Oznaczanie stron/postów jako prywatnych

Strony prywatne nie wymagają indywidualnych haseł do odblokowania. Dostęp do takich stron jest przyznawany po sprawdzeniu roli użytkownika. Zazwyczaj tylko administratorzy witryny lub redaktorzy mogą wyświetlać takie prywatne strony.

Oto jak wygląda strona oznaczona jako prywatna:

Inną dużą różnicą między stronami chronionymi hasłem a prywatnymi jest to, że jeśli nie masz wystarczających uprawnień do przeglądania strony, nie wyświetli się ona nigdzie w witrynie.

Jest to szczególnie przydatne, jeśli nie chcesz, aby przeciętny użytkownik witryny wiedział, że w witrynie znajdują się dodatkowe treści.

zalogowany-i-nie-zalogowany
Po lewej: artykuły prywatne są całkowicie ukryte, jeśli nie jesteś zalogowany lub nie masz odpowiednich uprawnień. Po prawej: te same artykuły dostępne publicznie.

Jest jasne:

Z tych dwóch opcji tylko ustawienie Widoczność prywatna ma sens, jeśli chcesz ograniczyć dużą ilość treści w swojej witrynie.

Ale jak możesz powiedzieć, nie możesz dać każdemu użytkownikowi dostępu na poziomie administratora lub redaktora w swojej witrynie. Co oznacza, że ​​musisz wprowadzić kolejny poziom członkostwa ( subskrybenci ). A następnie ustaw poziom widoczności stron prywatnych na poziom subskrybentów. W ten sposób wszyscy Twoi subskrybenci będą mogli uzyskać dostęp do wszystkich treści objętych ograniczeniami.

Oto, jak możesz wdrożyć ten prosty system dostępu, konfigurując Obszar Członkowski:

Tworzenie prostego Obszaru Członkowskiego

Najpierw utwórz zestaw stron, które będą dostępne tylko dla członków. Ustaw wszystkie te strony jako prywatne.

Teraz, ponieważ domyślnie tylko użytkownicy z dostępem na poziomie edytora lub administratora mogą uzyskiwać dostęp do tych stron, musimy udostępnić tę stronę również użytkownikowi na poziomie subskrybenta.

Aby to zrobić, musisz dodać nową funkcję i akcję do pliku functions.php w swoim motywie.

Przejdź więc do pliku functions.php w swoim motywie i dodaj do niego następujący kod:

/**
* Add read_private_posts capability to subscriber
* Note this is saves capability to the database on admin_init, so consider doing this once on theme/plugin activation
*/
add_action ('admin_init','add_sub_caps');

function add_sub_caps() {
	global $wp_roles;
	$role = get_role('subscriber');
	$role->add_cap('read_private_posts');
}

Wszystko to zmienia możliwości (uprawnienia) przypisane do roli Subskrybenta, aby uwzględnić możliwość czytania prywatnych postów. Zwróć uwagę, że jest to jednorazowa akcja, więc prawdopodobnie lepiej przeprowadzić aktywację motywu/wtyczki lub zakomentować kod po zakończeniu. Zapoznaj się z wytycznymi Kodeksu dotyczącymi add_cap. Ponadto, jeśli chcesz usunąć tę możliwość, musisz zmienić kod, aby używał funkcji remove_cap.

Konfigurowanie logowania do Obszaru Członkowskiego

Teraz, gdy Twój Obszar Członkowski jest gotowy, nadszedł czas, aby ułatwić subskrybentom zalogowanie się. Oczywiście Twoi użytkownicy mogą skorzystać z linku twojastrona.com/wp-login.php, ale zgodzisz się, że to nie jest bardzo przyjazny dla użytkownika.

Aby skonfigurować przyjazne dla użytkownika pola logowania, możesz użyć wtyczki Styler strony logowania.

Styler strony logowania umożliwia projektowanie stron logowania do witryny WordPress. Możesz po prostu dodać element o nazwie „Login” do swojego menu głównego i połączyć go z niestandardową stroną logowania zaprojektowaną za pomocą Stylera strony logowania.

Istnieje również kilka innych wtyczek, ale większość z nich nie była aktualizowana od co najmniej roku, więc upewnij się, że są kompatybilne przed ich użyciem.

Po udostępnieniu swoich prywatnych treści subskrybentom za pomocą przyjaznego ekranu logowania, powinno być gotowe.

W następnej sekcji zobaczymy, w jaki sposób możesz sprawić, by artykuły z Bazy wiedzy (oparte na Heroic Knowledge Base) pojawiły się w Twoim Obszarze Członkowskim.

Zapewnienie Obszaru Członkowskiego, aby zawierał artykuły z Heroicznej Bazy Wiedzy

Jeśli korzystasz z naszego motywu KnowAll lub wtyczki Heroic Knowledge Base, aby zasilić bazę wiedzy swojej witryny, możesz udostępnić treści wsparcia swoim subskrybentom bezpośrednio w Obszarze Członkowskim!

Zanim zaczniesz czytać dalej, wróć do mojego wcześniejszego artykułu, w którym pokazałem, jak korzystać z naszej wtyczki Heroic Knowledge Base w WooCommerce. Będzie to dobre odświeżenie, ponieważ w tym przewodniku zamierzam odwołać się do kodu i grupy pól niestandardowych, które utworzyliśmy w tym poście.

Zacznij od zainstalowania wtyczki Advanced Custom Fields.

Wcześniej stworzyliśmy niestandardową grupę pól o nazwie „ Opcje produktu ”.

W tym samouczku zmieniam nazwę „Opcje produktu” na „ Kategorie bazy wiedzy ”. Następną rzeczą do zrobienia jest edycja tej grupy, aby zawierała zarówno strony, jak i posty. Obecnie pole niestandardowe jest wyświetlane tylko wtedy, gdy typem wpisu jest produkt. Ale teraz chcemy mieć możliwość zastosowania go również do stron.

Aby to zrobić, przejdź do pól niestandardowych w panelu administracyjnym i edytuj Opcje produktu.

Pola niestandardowe

Po skonfigurowaniu utwórz artykuły z bazy wiedzy, które zamierzasz udostępnić tylko płatnym członkom. Ustaw wszystkie te strony jako prywatne, aby nie można było do nich uzyskać bezpośredniego dostępu. Przypisz je do kategorii, powiedz „ Kategoria treści z ograniczeniami ”. Później możesz wybrać tę kategorię, która będzie wyświetlana na Twoich ograniczonych stronach.

edycja strony

Ostatnim krokiem jest zmiana pliku page.php, aby wyświetlał wybraną kategorię.

W tym celu wrócimy do funkcji, którą stworzyliśmy, aby wypełnić trzecią zakładkę WooCommerce artykułami z Bazy wiedzy z mojego wcześniejszego wpisu. Możesz to ponownie wykorzystać tutaj. Po prostu powtórz funkcję w page.php w motywie potomnym, aby wyświetlić wybraną kategorię artykułów dla dowolnej strony.

Twój kod page.php powinien wyglądać tak:

<?php get_header(); ?>

<div id="primary" class="content-area">
	<main id="main" class="site-main" role="main">
	
	    <?php 
			//loop start
			while ( have_posts() ) : the_post(); 
				//include the page content template. 
				get_template_part( 'template-parts/content', 'page' ); 

				//check and load the woo_knowledge_base_content
				if( function_exists( 'woo_knowledge_base_content' ) ){
					echo woo_knowledge_base_content();
				} else {
					echo 'function woo_knowledge_base_content() missing';
				}
				 
				//load comment template
				 if ( comments_open() || get_comments_number() ) { 
				 	comments_template(); 
				 } //loop end 
			 endwhile; 
		?>
 
	</main><!-- .site-main -->
		<?php get_sidebar( 'content-bottom' ); ?>
 
</div> <!-- .content-area -->
 
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Jedyna zmieniona linia to

echo woo_knowledge_base_content();

Twoja strona powinna teraz zawierać wybraną kategorię artykułów z bazy wiedzy i wyglądać mniej więcej tak:

ostatnia strona

Dzięki temu powinieneś z powodzeniem wyświetlać artykuły z Twojej bazy wiedzy w Obszarze Członkowskim Twojej witryny.

Kilka darmowych wtyczek do ograniczania treści w witrynie WordPress

Jeśli nie chcesz kodować, rozważ zainstalowanie jednej z poniższych wtyczek. Wszystkie z nich mogą pomóc w ochronie treści przed niezarejestrowanych użytkownikami.

Płatne członkostwo Pro

Dzięki Paid Memberships Pro możesz mieć pewność, że tylko Twoi członkowie będą mieli dostęp do różnych składników Twojej witryny, takich jak strony, posty, kategorie, fora, pliki do pobrania, zawartość pomocy i nie tylko.

s2Member

s2Member to kolejna lekka wtyczka WordPress, która umożliwia ograniczenie treści. Korzystając z s2Member, możesz ograniczyć dostęp do swoich postów, stron, kategorii, tagów, plików do pobrania, forów i innych plików tylko do zarejestrowanych użytkowników.

Proste członkostwo

Proste członkostwo jest dostarczane z przyjaznym pulpitem nawigacyjnym, który pozwala chronić treści dostępne wyłącznie dla członków, takie jak posty, strony, galerie zdjęć, załączniki i inne, przed zwykłymi odwiedzającymi witrynę.

Oprócz tego możesz również sprawdzić Członków WP oraz Ograniczenie członkostwa i treści - Płatne subskrypcje członkowskie. Nawet te wtyczki pomagają blokować treści premium, umożliwiając dostęp tylko zarejestrowanym użytkownikom.

Podsumowując…

W zależności od celów możesz potrzebować czegoś od podstawowych do zaawansowanych funkcji ograniczania treści. Ale teraz wiesz, jak samodzielnie zaimplementować prosty Obszar Członkowski. Znasz nawet najlepsze wtyczki do wyboru.

Wypróbuj kod lub wtyczki i podziel się swoimi doświadczeniami poniżej.