Ограничение доступа к страницам WordPress и создание личного кабинета

Опубликовано: 2016-02-10

Хотите опубликовать премиум-курсы или информационный продукт? Возможно, вы захотите ограничить контент WordPress только теми читателями/участниками, которые за него платят. И скрыть контент для обычных посетителей. С WordPress вы можете легко защитить такую ​​информацию, используя различные средства ограничения контента, которые WordPress поддерживает прямо из коробки или с помощью плагинов.

Мы рассмотрим эти различные методы в этой статье. Мы обсудим:

  • Разница между защищенными паролем и личными страницами (и где два решения не работают)
  • Двухминутный хак для создания простой пользовательской зоны на вашем сайте WordPress (без использования плагина)
  • Отображение статей вашей базы знаний в вашей зоне для участников (этот раздел для вас, ЕСЛИ вы используете нашу тему KnowAll или решение Heroic Knowledge Base)
  • Бесплатные плагины, которые помогут вам контролировать доступ к страницам, сообщениям и другому контенту вашего сайта.

Давайте начнем с понимания разницы между защищенным паролем и частным контентом.

Создайте частную базу знаний - простой способ!

Создайте частную базу знаний с возможностью поиска с помощью Heroic Knowledge Base.

Получить плагин

Защищенный паролем или закрытый

Самый простой способ ограничить доступ к определенной странице (или другому содержимому публикации) — использовать различные настройки « Видимости », которые WordPress предоставляет по умолчанию.

Вы можете найти эти параметры на правой панели, где бы вы ни добавляли новую страницу или публикацию:

В настройках видимости есть 3 варианта видимости страницы (или поста):

  1. Публичный — при этом параметре по умолчанию контент доступен всем посетителям сайта.
  2. Защищено паролем - здесь только читатели с паролем страницы (или публикации) могут разблокировать доступ к контенту.
  3. Частный — этот параметр предоставляет доступ определенным пользователям в зависимости от их роли.

Второй и третий параметры видимости позволяют ограничить определенный контент.

Давайте посмотрим, как:

1. Защита страниц/сообщений паролем

Это очень простой вариант, дающий вам возможность защитить паролем отдельные страницы и сообщения, просто назначив пароль для этой страницы (или сообщения).

Любой, кто знает пароль (пароли), может получить доступ к содержимому.

Теперь этот вариант работает, если у вас есть страница или две, которые вы хотели бы скрыть от широкой публики. Однако вы можете себе представить, что если вам нужно защитить сотни статей, вам придется поддерживать и распространять сотни паролей для всех подходящих читателей.

Еще одна проблема с этим методом заключается в том, что если пользователь найдет такой контент или щелкнет ссылку на такую ​​защищенную паролем страницу, он увидит экран с запросом пароля, поэтому он узнает, что на вашем сайте есть какой-то защищенный или эксклюзивный контент. . Итак, если вы не хотите, чтобы люди, не имеющие доступа, узнали об этом контенте, этот метод не решит вашу задачу.

На следующем снимке экрана показан пример защищенного паролем ресурса:

Кроме того, защита страницы паролем не удаляет эту страницу с веб-сайта, если у вас нет разрешения на ее просмотр. Вместо этого в начало заголовка добавляется слово « Защищено: », которое имеет свое применение, но не идеально, если вы не хотите, чтобы люди знали, что на веб-сайте есть частный контент.

защищенные статьи

2) Пометка страниц/сообщений как личных

Частные страницы не требуют индивидуальных паролей для разблокировки. Доступ к таким страницам предоставляется после проверки роли пользователя. Как правило, такие частные страницы могут просматривать только администраторы или редакторы сайта.

Вот как выглядит страница с пометкой «частная»:

Другое большое различие между защищенными паролем и частными страницами заключается в том, что если у вас нет достаточных привилегий для просмотра страницы, она нигде не будет отображаться на веб-сайте.

Это особенно полезно, если вы не хотите, чтобы средний посетитель веб-сайта знал, что на веб-сайте есть дополнительный контент.

залогинился-и-нет
Слева: личные статьи полностью скрыты, если вы не вошли в систему или не имеете необходимых разрешений. Справа: те же статьи в открытом доступе.

Ясно:

Из двух вариантов только параметр «Частная видимость» имеет смысл, если вы хотите ограничить доступ к большому количеству контента на своем сайте.

Но, как вы понимаете, вы не можете предоставить каждому пользователю доступ на уровне администратора или редактора на вашем сайте. Это означает, что вам нужно ввести еще один уровень членства ( подписчики ). А затем установите уровень видимости приватных страниц на уровне подписчиков. Таким образом, все ваши подписчики смогут получить доступ ко всему ограниченному контенту.

Вот как вы можете реализовать эту простую систему доступа, настроив Личный кабинет:

Создание простой пользовательской зоны

Сначала создайте набор страниц, которые будут доступны только участникам. Сделайте все эти страницы приватными.

Теперь, поскольку по умолчанию только пользователи с правами редактора или администратора могут получить доступ к этим страницам, нам нужно сделать эту страницу видимой и для пользователя уровня подписчика.

Для этого вам нужно добавить новую функцию и действие в файл functions.php вашей темы.

Итак, перейдите в файл functions.php в вашей теме и добавьте в него следующий код:

/**
* 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');
}

Все, что это делает, — это изменяет возможности (разрешения), назначенные роли подписчика, чтобы включить возможность читать личные сообщения. Обратите внимание, что это одноразовое действие, поэтому, вероятно, лучше выполнить активацию темы/плагина или закомментировать код, когда это будет сделано. См. инструкции Кодекса по add_cap. Кроме того, если вы хотите удалить эту возможность, вам нужно будет изменить код, чтобы использовать функцию remove_cap.

Настройка входа в личный кабинет

Теперь, когда ваш Личный кабинет готов, пришло время упростить вход для подписчиков. Конечно, ваши пользователи могут использовать ссылку yourwebsite.com/wp-login.php, но вы согласитесь, что это не так. очень удобный.

Чтобы настроить удобные окна входа в систему, вы можете использовать плагин стиля страницы входа.

Стилист страницы входа позволяет создавать страницы входа для вашего сайта WordPress. Вы можете просто добавить элемент под названием «Вход» в главное меню и связать его с настраиваемой страницей входа, созданной с помощью стилизатора страницы входа.

Также есть несколько других плагинов, но большинство из них не обновлялись как минимум год, поэтому перед их использованием обязательно проверьте их совместимость.

Как только вы сделаете свой личный контент доступным для своих подписчиков через дружественный экран входа в систему, все будет готово.

В следующем разделе мы увидим, как вы можете сделать так, чтобы ваши статьи базы знаний (на базе Heroic Knowledge Base) отображались в вашем личном кабинете.

Добавление в личный кабинет статей из базы знаний Heroic

Если вы используете нашу тему KnowAll или плагин Heroic Knowledge Base для расширения базы знаний вашего веб-сайта, вы можете сделать свой вспомогательный контент доступным для ваших подписчиков прямо в Личном кабинете!

Прежде чем читать дальше, вернитесь к моей предыдущей статье, где я показал, как использовать наш плагин Heroic Knowledge Base с WooCommerce. Это будет хорошим напоминанием, потому что в этом пошаговом руководстве я буду ссылаться на часть кода и группу настраиваемых полей, которую мы создали в этом посте.

Начните с установки плагина Advanced Custom Fields.

Ранее мы создали пользовательскую группу полей под названием « Параметры продукта ».

Для этого урока я переименовал «Параметры продукта» в « Категории базы знаний ». Следующее, что нужно сделать, это отредактировать эту группу, включив в нее как страницы, так и сообщения. Прямо сейчас настраиваемое поле настроено для отображения только в том случае, если тип публикации является продуктом. Но теперь мы хотим иметь возможность применять его и к страницам.

Для этого перейдите в « Пользовательские поля» в админке и отредактируйте «Параметры продукта».

Настраиваемые поля

После настройки создайте статьи базы знаний, которые вы собираетесь сделать доступными только для платных участников. Установите все эти страницы как частные, чтобы к ним нельзя было получить доступ напрямую. Назначьте их категории, скажем, « Категория контента с ограниченным доступом». Позже вы можете выбрать эту категорию для отображения на страницах с ограниченным доступом.

редактирование страницы

Последним шагом является изменение файла page.php для отображения выбранной категории.

Для этого мы вернемся к функции, которую мы создали, чтобы заполнить третью вкладку WooCommerce статьями базы знаний в моем предыдущем посте. Вы можете повторно использовать это здесь. Просто повторите функцию в page.php в дочерней теме, чтобы отобразить выбранную категорию статей для любой данной страницы.

Ваш код page.php должен выглядеть так:

<?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(); ?>

Единственная измененная строка

echo woo_knowledge_base_content();

Теперь ваша страница должна включать выбранную категорию статей базы знаний и выглядеть примерно так:

последняя страница

При этом вы должны были успешно отображать статьи из своей базы знаний в личном кабинете вашего веб-сайта.

Несколько бесплатных плагинов для ограничения контента на сайте WordPress.

Если вы не хотите программировать, рассмотрите возможность установки одного из следующих плагинов. Все они могут помочь вам защитить ваш контент от незарегистрированных пользователей.

Платное членство Pro

С платным членством Pro вы можете гарантировать, что только ваши участники получат доступ к различным компонентам вашего веб-сайта, таким как страницы, сообщения, категории, форумы, загрузки, вспомогательный контент и многое другое.

s2Member

s2Member — еще один легкий плагин WordPress, который позволяет ограничивать контент. Используя s2Member, вы можете ограничить доступ к своим сообщениям, страницам, категориям, тегам, загружаемым файлам, форумам и другим файлам только для ваших зарегистрированных пользователей.

Простое членство

Простое членство поставляется с удобной панелью инструментов, которая позволяет вам защитить ваш эксклюзивный контент, такой как сообщения, страницы, фотогалереи, вложения и многое другое, от обычных посетителей сайта.

В дополнение к этому вы также можете проверить WP-Members и Membership & Content Restriction — платные подписки участников. Даже эти плагины помогают заблокировать премиум-контент, предоставляя доступ только зарегистрированным пользователям.

Заворачиваем…

В зависимости от ваших целей вам может понадобиться что-то от базовых до расширенных возможностей ограничения контента. Но теперь вы знаете, как реализовать простой Личный кабинет самостоятельно. Вы даже знаете лучшие плагины на выбор.

Так что попробуйте код или плагины и поделитесь своим опытом ниже.