24 июня 2016
7093
wordpress, ограниченный доступ, страницы, закрытый доступ

WordPress: ограниченный доступ к страницам

WordPress

Добрый день, уважаемые читатели RootHelp.ru и сегодня для Вас мы открываем новую рубрику, которая полностью будет посвящена одной и самых популярных некоммерческих CMS, а именно WordPress. После серий удачных уроков по 1С-Битрикс, которые раз за разом пишет Алексей Копча, я решил внедрить и WordPress, так как частенько приходиться с данной CMS работать и есть чем с Вами поделиться, а также что рассказать.

 

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

 

 

Первая часть. Предисловие.

 

И так, прежде чем начать, все же хочется по рассуждать, - "Что же такое ограничение доступов к страницам в WordPress и зачем это нужно?". Ответ очень прост, - "Если Вам требуется скрыть от посторонних не авторизованных пользователей определенную страницу или страницы, а может и весь сайт, то нужно создать скрипт с функциональными способностями, который будет выводить вместо страницы, стандартный вход в админку WordPress".

Надеюсь, я смог объяснить Вам суть данной идеи, а теперь желаю приятного просмотра или изучения данного материала, как в текстовом виде, так и видео формате!

 

 

Вторая часть. Файл dostup.php

 

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

 

/*
Template Name: Доступы
*/

if(!is_user_logged_in()){
	wp_redirect(wp_login_url(get_permalink()));
	exit;
}
else{
	get_header();
	the_post();
	echo $current_user -> user_login;
	echo the_content();
	echo "<a href=".wp_logout_url(home_url())."'>Выход</a>";
	get_footer();
}

 

 

 

Третья часть. Файл function.php

 

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

 

if(!current_user_can('manage_options')){
	show_admin_bar(false);
}

add_action('admin_init','redirect_non_admin_users');

function redirect_non_admin_users(){
	if(!current_user_can('manage_options'))
	{
		wp_redirect(home_url());
		exit;
	}
}

 

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