Рубрика: WordPress » WordPress-рецепты »

Как закрыть WordPress-сайт для незарегистрированных посетителей

Если вы не хотите, чтобы на ваш WordPress-сайт могли заходить посторонние посетители, например, во время разработки и настройки сайта, можно очень просто сделать сайт доступным только для зарегистрированных пользователей:
Достаточно добавить в файл темы header.php строки

 if(!is_user_logged_in()) {
  auth_redirect();
 }

Если посетитель не авторизован, функция WordPress auth_redirect() перенаправляет посетителя на страницу входа. (Здесь также нужна дополнительная проверка !is_user_logged_in(), иначе авторизация не работает .)

Если не хочется изменять код темы, можно создать плагин onlyregistered.php с коротенькой функцией:

<?php
/*
Plugin Name:  Only Registered
Plugin URI: http://mblogm.ru/blog/only-for-registered-users/
Description: Только для зарегистрированных пользователей
Version: 1
Author: ...
Author URI: http://mblogm.ru/
*/

function onlyregistered_func() {
 if(!is_user_logged_in()) {
  auth_redirect();
 }
}

add_action('get_header', 'onlyregistered_func');
?>

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

Нужно сказать, что на RSS-фиды сайта так повлиять нельзя, т.е. сайт будет закрыт не полностью.

Скриншоты для WordPress 4.0

Если посетитель не авторизован, функция WordPress auth_redirect() перенаправляет посетителя на страницу входа.

wploginpage

Стандартная форма входа на сайт

По ссылке "Регистрация" открывается форма регистрации:

wpregisterpage

Форма регистрации

wpregisterpage1

Регистрация пройдена

Опубликовано в рубрике WordPress-рецепты | с метками , . |

Еще записи

19 комментариев на «Как закрыть WordPress-сайт для незарегистрированных посетителей»

  1. аперкуц говорит:

    так сам пароль какой? где-то же его надо задать

  2. Виталий говорит:

    Спасибо, то что искал. Поставил плагин на блог, очень удобно. Блог в подписи.

  3. Максим говорит:

    Здравствуйте! Долго искал этот код if(!is_user_logged_in()) {
    auth_redirect();
    }
    Все хорошо . только ссылка регистрации неработает происходит редирект на строницу авторизации. Помогите решить эту проблему

  4. Лёха говорит:

    auth_redirect() - это и есть редирект на строницу авторизации

    • Максим говорит:

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

      • Admin говорит:

        См. Описание функций, используемых при входе в систему блога на WordPress: http://mblogm.ru/wordpress-guide/wordpress-functions/login-logout/

        • Максим говорит:

          Доброй ночи! Подскажите какой код мне прописать чтоб вместо сайта сначала загружалась страница авторизации вордпресс и только потом после авторизации или регистрации пользователь попадал на сайт.

          • Admin говорит:

            auth_redirect() перенаправляет посетителя на стандартную страницу авторизации, и регистрация должна работать (у меня работает). Если не работает, нужно искать, в чем проблема: проверить на дефолтной теме и отключить все плагины. Регистрация разрешена на сайте (Настройки - Общие)?

        • Максим говорит:

          Всем Добрый вечер! Взрыв мозга!!!
          ставлю этот код :
          if(!is_user_logged_in()) {
          auth_redirect();
          } В заголовок( header.php) менял темы , отключал плагины, регистрация у меня разрешена( каждый может заригится) , но регистрация так и не работает именно с этим кодом , если без кода все нормуль , но всё же хочется ,что бы перед тем как пользователь защёл на сам сайт , сначала стандартная страница авторизации , а уж потом сайт.
          WordPress 4.0.1+BuddyPress 2.1.1

          • Admin говорит:

            Если на чистом WordPress с дефолтной темой не работает, переустанавливай WordPress. Еще пишут, были проблемы с Buddypress:
            >>Installed WP 4 and BP 2.1.1
            Everything was working fine until I installed Buddypress ... now when a user clicks on register they do not get the registration page!<< - после установки Buddypress по щелчку на ссылке Регистрация не появляется страница регистрации. см. buddypress.org/support/topic/wpmu-require-login-to-view-any-part-of-site-but-allow-registration/ - рекомендован плагин Registered Users Only 2

  5. Максим говорит:

    ВСЯ ПРОБЛЕМА В Buddypress и плагины не помогают буду искать ключ к этой проблеме ... Если кто знает ответ напишите

  6. Максим говорит:

    Добрый вечер! Всех С Новым Годом!Вот и месяц прощол короче перепробовал почти наверно все плагины которые закрывают сайт от не зарегистрированных пользователей, и этот тоже Registered Users Only 2 ,но BuddyPress держит оборону или отключает автоматом регистрацую , как было при написании кода if(!is_user_logged_in()) {
    auth_redirect();
    } в header.php, Хочу поделиться безплатным хорошим плагином для закрытия сайта от незарегиных посетителей который нашел нечаянно Private4time у него всего два пункта настроек :
    - включение режима закрытый сайт ( можно даже время выставить через сколько закрыть.если оставить по нулям то сайт закрывается сразу)
    - и разрешить или запретить регистрацию
    кому интересно тог скачать можно здесь private4time.blog-me.de/
    Да и все же если кто сталкивался с Buddypress с закрытием сайта и чтоб при этом регистрация тоже работала напишите maximus08-76@mail.ru

    • Admin говорит:

      Вот тестовый сайт http://mblogm.ru/buddypress/
      регистрация работает - проверяй!

      установлено два плагина: BuddyPress и BuddyPress Members only
      При попытке зайти на страницы кроме главной пользователь перенаправляется на страницу, заданную в настройке плагина BuddyPress Members only - страницу регистрации

      • Максим говорит:

        Большое тебе человеческое СПАСИБО!!!!! Все работает замечательно.

        • Максим говорит:

          Да может кому пригодиться: вот этот код
          add_filter("login_redirect","bpdev_redirect_to_profile",10,3);

          function bpdev_redirect_to_profile($redirect_to_calculated,$redirect_url_specified,$user)

          {

          if(empty($redirect_to_calculated))

          $redirect_to_calculated=admin_url();

          /*if the user is not site admin,redirect to his/her profile*/

          if(!is_site_admin($user->user_login))

          return bp_core_get_user_domain($user->ID );

          else

          return $redirect_to_calculated; /*if site admin or not logged in,do not do anything much*/
          }
          вставляем в functions.php вашей темы сразу после
          <?php после авторизации пользователь попадает на свой профиль в BuddyPress

  7. Максим говорит:

    И еще вот этот плагин BuddyPress cover для BuddyPress дает возможность в профиле так же как в фейсбуке над аватаром вставлять фоновую картинку.

  8. Andrews32 говорит:

    Admin, спасибо за интересную статью! Подскажите, а как помимо всего этого сделать, чтобы файлы из медиабиблиотеки не отдавались по прямой ссылке неавторизованнмы пользователям?

  9. Ефим говорит:

    Спасибо за отличный плагин!

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

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