Как защитить в wordpress запись паролем: Всё про защиту записей паролем в WordPress – Как скрыть контент WordPress с помощью функции защиты паролем

Содержание

Всё про защиту записей паролем в WordPress

Если вы администратор, редактор на блоге или автор поста, то вы можете установить на него (на пост) пароль (под постом в данном случае я буду подразумевать запись, страницу или пост произвольного типа — то есть защита паролем работает для всех них).

Так как же можно защитить пост паролем в WP?

На самом деле защитить запись паролем не сложнее, чем создать эту самую запись. Всё, что вам потребуется это:

  1. Как я уже писал выше — нужно быть администратором, редактором или автором (этого поста).
  2. Переходим на страницу редактирования поста и в блоке «Опубликовать» жмём «Видимость > Изменить».
  3. Выбираем Защищено паролем, устанавливаем свой пароль и жмём «Ок», затем «Обновить». Защитить пост паролем не сложнее, чем опубликовать его.

По сути всё. Если теперь мы перейдём на страницу поста, то увидим:

Так выглядит форма ввода пароля для записи на страницах сайта

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

Несколько вещей про защиту паролем, про которые вам следует знать

Итак:

Как изменить форму ввода пароля на страницах сайта?

Я находил несколько очень мудрёных решений на не буду говорить каких сайтах, но на самом деле всё делается очень очень просто:

function true_new_post_pass_form() {
	/*
	 * в принципе тут нужно обратить внимание на три вещи:
	 * 1) куда ссылается форма, а также method=post
	 * 2) значение атрибута name поля для ввода - post_password
	 * 3) атрибуты size и maxlength поля для ввода должны быть меньше или равны 20 (про длину пароля я писал выше)
	 * Во всём остальном у вас полная свобода действий!
	 */
	return '<form action="' . esc_url( site_url( 'wp-login.php?action=postpass', 'login_post' ) ) . '" method="post">
	<input name="post_password" type="password" size="20" placeholder="Пароль к записи" maxlength="20" />
	<input type="submit" name="Submit" value="Разблокировать" />
	</form>';
}
add_filter( 'the_password_form', 'true_new_post_pass_form' ); // вешаем функцию на фильтр the_password_form

Ах да, если не знаете, куда вставлять код — вставляйте в functions.php (в тот, который находится в вашей активной теме WP).

А можно ли изменить стандартное сообщение для цитат?

Конечно, в этом вам поможет этот хук:

function true_protected_excerpt_text( $excerpt ) {
	if ( post_password_required() )
		$excerpt = '<em>[Запись заблокирована. Для получения пароля обратитесь к администратору.]</em>';
	return $excerpt; // если запись не защищена, будет выводиться стандартная цитата
}
add_filter( 'the_excerpt', 'true_protected_excerpt_text' );

Кроме того, используя предыдущий пример, вы даже сможете вывести форму ввода пароля.

Как полностью скрыть с сайта все записи, защищенные паролем

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

/*
 * Небольшая модификация для SQL запроса, получающего посты
 */
function true_exclude_pass_posts($where) {
	global $wpdb;
	return $where .= " AND {$wpdb->posts}.post_password = '' "; 
}
 
/*
 * При помощи этого фильтра определим, на каких именно страницах будет скрывать защищенные посты
 */
function true_where_to_exclude($query) {
	if( is_front_page() ) { // например на главной странице
		add_filter( 'posts_where', 'true_exclude_pass_posts' );
	}
}
 
add_action('pre_get_posts', 'true_where_to_exclude');

Читайте подробнее про is_front_page() и другие условные теги.

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Всё про защиту записей паролем — WordPressify

Если вы администратор, редактор на блоге или автор поста, то вы можете установить на него (на пост) пароль (под постом в данном случае я буду подразумевать запись, страницу или пост произвольного типа — то есть защита паролем работает для всех них).

Так как же можно защитить пост паролем в WP?

На самом деле защитить запись паролем не сложнее, чем создать эту самую запись. Всё, что вам потребуется это:

  1. Как я уже писал выше — нужно быть администратором, редактором или автором (этого поста).
  2. Переходим на страницу редактирования поста и в блоке «Опубликовать» жмём «Видимость > Изменить».
  3. Выбираем Защищено паролем, устанавливаем свой пароль и жмём «Ок», затем «Обновить».

По сути всё. Если теперь мы перейдём на страницу поста, то увидим:

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

Несколько вещей про защиту паролем, про которые вам следует знать

Итак:

Как изменить форму ввода пароля на страницах сайта?

Я находил несколько очень мудрёных решений на не буду говорить каких сайтах, но на самом деле всё делается очень очень просто:

function true_new_post_pass_form() {
    /*
     * в принципе тут нужно обратить внимание на три вещи:
     * 1) куда ссылается форма, а также method=post
     * 2) значение атрибута name поля для ввода - post_password
     * 3) атрибуты size и maxlength поля для ввода должны быть меньше или равны 20 (про длину пароля я писал выше)
     * Во всём остальном у вас полная свобода действий!
     */
    return '<form action="' . esc_url( site_url( 'wp-login.php?action=postpass', 'login_post' ) ) . '" method="post">
    <input name="post_password" type="password" size="20" placeholder="Пароль к записи" maxlength="20" />
    <input type="submit" name="Submit" value="Разблокировать" />
    </form>';
}
add_filter( 'the_password_form', 'true_new_post_pass_form' ); // вешаем функцию на фильтр the_password_form

Ах да, если не знаете, куда вставлять код — вставляйте в functions.php (в тот, который находится в вашей активной теме WP).

А можно ли изменить стандартное сообщение для цитат?

Конечно, в этом вам поможет этот хук:

function true_protected_excerpt_text( $excerpt ) {
    if ( post_password_required() )
        $excerpt = '<em>[Запись заблокирована. Для получения пароля обратитесь к администратору.]</em>';
    return $excerpt; // если запись не защищена, будет выводиться стандартная цитата
}
add_filter( 'the_excerpt', 'true_protected_excerpt_text' );

Кроме того, используя предыдущий пример, вы даже сможете вывести форму ввода пароля.

Как полностью скрыть с сайта все записи, защищенные паролем

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

/*
 * Небольшая модификация для SQL запроса, получающего посты
 */
function true_exclude_pass_posts($where) {
    global $wpdb;
    return $where .= " AND {$wpdb->posts}.post_password = '' "; 
}
 
/*
 * При помощи этого фильтра определим, на каких именно страницах будет скрывать защищенные посты
 */
function true_where_to_exclude($query) {
    if( is_front_page() ) { // например на главной странице
        add_filter( 'posts_where', 'true_exclude_pass_posts' );
    }
}
 
add_action('pre_get_posts', 'true_where_to_exclude');

Читайте подробнее про is_front_page() и другие условные теги.

Устанавливаем пароль на страницы, посты, категории на WordPress

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

Задаем пароль всем статьям в определенной категории

Давайте начнем с раздела сайта «Рубрики». К примеру, нужно ограничить доступ к содержимому из одной или нескольких категорий. Устанавливаем плагин Access Category Password и переходим к его параметрам (Настройки — Password).

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

Only single post. Если в нем установить галочку, тогда привью поста также будет защищено паролем.

Access Category Password

Устанавливаем пароль на страницы

Эту задачу решить довольно просто даже без помощи специальных плагинов. Обойдемся одними силами самой платформы WordPress. И прошу заметить, что таким способом можно устанавливать пароль не только страницам, но и записям. Правда, это делается вручную.
В разделе публикации страницы или поста есть справа вкладка «Опубликовать». В ней есть несколько параметров, но нас пока что интересует только «Видимость». Нам нужно нажать на ссылку «изменить», которая находится напротив нашего поля. В развернутом списке отметьте пункт «Защищено паролем». Впишите свой пароль и нажмите кнопку опубликовать.

Установить пароль на весь сайт

В этой задачи нам поможет плагин Password Protected с максимально — минимальными и несложными параметрами. После его установки перейдите в раздел «Настройки – Защита паролем». Там можете включить работу плагина, установить пароль, разрешить определенным пользователям доступ и т.д.

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

Password Protected

Как защитить паролем доступ к папке wp-admin в WordPress

Читая заголовок поста, вы могли подумать, а разве директория wp-admin не защищена изначально? Ведь для начала нужно авторизоваться в WordPress, чтобы попасть внутрь. С одной стороны это так, но ведь никто не отменял взломы и атаки на сайт. Да и лишняя прослойка в безопасности не помешает. К примеру, популярные сайты вроде Mashable защищают дополнительно свои внутренние директории. В этом руководстве я покажу вам, как защитить паролем доступ к папке wp-admin в WordPress.

cPanel

Для начала я приведу инструкцию по установке пароля через cPanel. Почему именно cPanel? Потому что это одна из самых популярных панелей управления хостингом в мире.

Специализированный хостинг для сайтов на WordPress!
Специализированный хостинг для сайтов на WordPress! Hostenko - Лучший WordPress хостингHostenko - Лучший WordPress хостинг

Войдите в вашу панель cPanel (вы можете зайти в демо-версию панели здесь), и нажмите на иконку Password Protect Directories в секции Security.

Как защитить паролем доступ к папке wp-admin в WordPress

Как защитить паролем доступ к папке wp-admin в WordPress

Как только вы нажмете, появится всплывающее окно с выбором размещения корневой директории, просто нажмите Go (выбрано по умолчанию Web Root).

Как защитить паролем доступ к папке wp-admin в WordPress

Как защитить паролем доступ к папке wp-admin в WordPress

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

Как защитить паролем доступ к папке wp-admin в WordPress

Как защитить паролем доступ к папке wp-admin в WordPress

Просто отметьте галочкой поле Password protect, затем создайте нового пользователя для доступа к директории, указав имя и пароль. Вот и все! Теперь при попытке войти в каталог wp-admin вы увидите окно авторизации:

Как защитить паролем доступ к папке wp-admin в WordPress

Как защитить паролем доступ к папке wp-admin в WordPress

Ручной способ

Для начала создайте файл .htpasswds. Вы можете это легко сделать, воспользовавшись этим генератором. Затем загрузите этот файл на один уровень выше от директории /public_html/. У вас должен получиться примерно вот такой путь:

home/user/.htpasswds/public_html/wp-admin/passwd/

После этого создайте файл .htaccess и загрузите его в директорию wp-admin. Добавьте следующий код в файл .htaccess:

AuthName "Admins Only"
AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
AuthGroupFile /dev/null
AuthType basic
require user putyourusernamehere

Вам нужно будет вписать в код свой username. И не забудьте указать правильный путь для AuthUserFile.

Если вы видите ошибку 404 или другие ошибки

Такое может случаться в зависимости от того, как настроен ваш сервер. Можно попытаться исправить это следующим образом. Откройте ваш основной файл .htaccess в WordPress и добавьте туда следующий код перед началом описания WordPress-правил (WordPress rules):

ErrorDocument 401 default

Это должно помочь. Теперь у вас двойная защита для Консоли и всей остальной зоны wp-admin. Это неплохая альтернатива другому способу, который мы описывали в уроке "Как ограничить число попыток входа в консоль WordPress".

Обновление: Как исправить неработающую Ajax функциональность

Если вы защитите паролем вашу wp-admin директорию, это может сломать Ajax функциональность во front-end (если таковой используется). Это можно легко исправить.

Откройте файл .htaccess, который находится в каталоге /wp-admin/ (это не основной файл .htaccess, о котором я только что говорил) и добавьте в него следующий код:

Hostenko - Лучший WordPress хостингHostenko - Лучший WordPress хостинг
<Files admin-ajax.php>
    Order allow,deny
    Allow from all
    Satisfy any 
</Files>
Источник: WPBeginner.com
Специализированный хостинг для сайтов на WordPress!Специализированный хостинг для сайтов на WordPress!

Смотрите также:

Как защитить паролем WordPress без регистрации пользователя

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

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

Настройки защиты паролем Настройки защиты паролем

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

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

Теперь всякий раз, когда кто-то пытается открыть ваш WordPress сайт, они будут видеть экран паролей вроде этого:

Экран входа Защита паролемЭкран входа Защита паролем

Вы даже можете изменить логотип на странице входа и добавить пользовательский с помощью плагин Login Logo.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как защитить паролем страницу или пост в WordPress?

Зачем защищать паролем?

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

Возможности WordPress

В WordPress предусмотрена такая возможность, которая реализуется специальной функцией видимости контента. Чтобы посмотреть, как это работает, создадим новую запись (для страниц ситуация аналогичная). Для этого в админ-панели следует перейти Записи -> Добавить новую. В редакторе обратите внимание на блок Опубликовать.

Блок Опубликовать в редакторе записей

Тут присутствует пункт Видимость. Эта настройка как раз и отвечает за видимость контента. Если нажать кнопку Изменить, то откроется список возможностей настройки.

Настройка видимости контента

Создавая запись или статью, по умолчанию их видимость устанавливается как Открыто. Чтобы это изменить и поставить просмотр с паролем, необходимо из списка выбрать пункт Защищено паролем, где сразу от Вас потребуют ввести этот самый пароль. После ввода необходимо нажать кнопку ОК.

Установка пароля на просмотр записи

Пункт Видимость сразу поменяет значение на Защищено паролем.

Установка пароля на просмотр записи

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

Защищенная паролем запись

После ввода пароля Вы сможете видеть контент записи.

Курс WordPress-разработчик

Если Вам понравилась статья — поделитесь с друзьями

Курс WordPress-разработчик

Михаил Петров

Привет! Меня зовут Михаил Петров. Я копирайтер и занимаюсь этим с 2013 года. Скрупулезность и ответственность - моя фишка! Не могу делать как попало и добиваюсь, чтоб заказчик сказал минимум “неплохо”. За все время своей работы пришлось написать и отредактировать немало разной “текстовухи”, включая SEO-тексты, отзывы и прочую чушь. На сегодняшний день специализируюсь на написании информационных статей и руководств технического направления. Вижу смысл и светлое будущее в текстах для людей, а не для машин.

как закрыть страницу паролем в WordPress? Как закрыть папку паролем. Защита WordPress

Бывают ситуации, когда сделанный вами сайт не должен быть публичным, а используется как некий сервис для ограниченного круга лиц. Можно, конечно, нагородить аутентификацию через PHP, но есть почти элементарный способ – закрыть папку на сайте средствами Apache. Например, с помощью файлов .htaccess и .htpasswd . Вот об этом мы сейчас и поговорим.

Создаём файл.htpasswd с паролями

Для того, чтобы установить пароль, сначала мы должны сгенерировать файл .htpasswd . Делается это с помощью утилиты htpasswd, которая существует в версии как для Linux, так и для Windows .

htpasswd -c .htpasswd admin

Ключ указывает, что необходимо создать новый файл с паролями. .htpasswd - имя генерируемого файла. admin – логин пользователя, которому будет разрешен доступ в закрытую часть сайта. После запуска утилиты со всеми нужными параметрами, появится запрос на ввод пароля и его повтор. Если файл.htaccess у вас уже создан, и вы хотите добавить в него нового пользователя, просто запустите утилиту, указав файл с паролями без ключа –c .

Создаваемый файл является текстовым и содержит логин пользователя и хеш-пароля, которые, разделены двоеточием. По умолчания, алгоритм хеширования – DES. Но его можно сменить и использовать алгоритм MD5 с ключом –m , но лучший вариант использование алгоритма SHA(ключ -s ).

Защита сайта с помощью.htaccess

Итак, файл создан, затем добавляем к корневую директорию сайт файл.htaccess или дописываем в уже существующий следующие строки:


# Закрываем доступ к файлу.htaccess
Order allow,deny
Deny from all
Satisfy All

# Указываем место положение файла.htpasswd, включаем аутентификация
AuthUserFile /etc/apache2/passwd/.htpasswd
AuthName "Password Protected Area"
AuthType Basic
Require valid-user

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

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

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


User-agent: *
Disallow: /

На этом я думаю можно, и закончить этот пост. Если у Вас есть какие-то ещё вопросы по теме, жду их в комментариях.

Всех с наступающими и наступившими праздниками! Надеюсь они проходят у вас прекрасно и сопровождаются отличным настроением.

Сегодня у нас будет простой, но интересный урок.

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

А можно сделать на сайте отдельную страничку, которая будет доступна только тем посетителям, которые знают особый пароль.

Как закрыть страницу паролем? На движке WordPress это делается в два счета.

Итак, будем обучаться в режиме реального времени. Я делаю этот принтскрин прямо сейчас, пока пишу пост:

Изначально мы имеем новую запись. Она пока еще даже не опубликована. Кстати, такую же процедуру можно выполнять и со страницами.

Я использую версию движка WordPress 3.5.1, и здесь еще до публикации материала справа можно видеть вот такую опцию:

Жмем на кнопку «изменить» и в выпавшем списке выбираем «Защищено паролем»:

Придумайте и введите пароль (конечно же, его нужно запомнить или куда-то скопировать для удобства). Жмем «Опубликовать». Теперь, когда мы откроем только что созданную запись или страницу, то увидим следующее:


Видите, как всё просто? И нам даже не потребовались специальные плагины.

В более ранних версиях WordPress вам, скорее всего, сначала придется опубликовать пост, а затем уже открыть его при помощи «быстрого редактирования» и поставить пароль.

Как это можно использовать?

Закрыть страницу паролем, как видите, довольно просто. Но для предприимчивого человека это открывает большие перспективы. Вот лишь некоторые идеи, которые пришли мне в голову по поводу ее использования:

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

Дошли слухи о том, что WordPress далеко не идеал безопасности. Хоть

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *