• Решено kanderov

    (@kanderov)


    Добрый день.

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

    Может кто встречал хак для functions.php указывается ID категории закрытой для гостей, и ID страницы куда делается редирект. Поделитесь?

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    function hide_category_from_guests() {
    	$hidden_category_ids = array( 1 );
    	$landing_page_id = 1;
    
    	if ( is_category($hidden_category_ids) || is_single() && in_category($hidden_category_ids) ) {
    		if ( !is_user_logged_in() )
    			wp_redirect( get_page_link($landing_page_id) );
    	}
    }
    add_action('wp', 'hide_category_from_guests');

    Sergey Biryukov большое спасибо за попытку помочь но..

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

    Если хватает знаний буду рад если поправите.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Тогда можно выполнять полноценное перенаправление, без манипуляций с запросом. Обновил фрагмент.

    Ну что тут скажешь, вроде все работает исправно, проверил в IE, Опера, Лис, Сафари. Низкий поклон, не оскудела еще земля русская.)

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Стоит добавить, что в текущем варианте не рассматривается исключение записей, принадлежаших рубрике, из списка на главной странице и из RSS-ленты — в первом сообщении говорилось только о перенаправлении, и я предположил, что этот вопрос уже решён. Так ли это на самом деле? 🙂

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

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Сделал $hidden_category_ids массивом — можно писать ID через запятую.

    Еще раз спасибо, все работает.
    Зафоловил вас в твиттере.

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Редирект категории» закрыта для новых ответов.