andrewwarner
  • 0
Новичок

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

  • 0

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

Share
  1. Попробуйте этот новый плагин, недавно выпущенный на wordpress.org/plugins/dual-homepage.

    • 0
  2. Решение Rarst действительно является самым простым способом сделать это, а плагин Members также имеет массу других преимуществ.

    Вы также можете сделать это без плагина, используя функцию is_user_logged_in().

    Дополнительная информация на http://codex.wordpress.org/Function_Reference/is_user_logged_in и http://codex.wordpress.org/Function_Reference/get_currentuserinfo#Parameters

    • 0
  3. Только домашняя страница или весь сайт?.. Я предполагаю последнее, поскольку это имеет больше смысла.

    Самый простой способ, который я знаю, это использовать плагин Members и включить опцию Private Blog, которая у него есть.

    • 0
  4. Если вам удобно добавлять функции, это поможет.

        /**
         * If a user is logged in, tell WordPress to use 'page' on front page of the site
         * @param string $value
         * @return string
         */
        function fn_set_page_as_front_for_loggedin_user( $value ) {
            if ( is_user_logged_in() ) {
                $value = 'page';
                //page is set as front page
            }
            return $value;
        }
        add_filter( 'pre_option_show_on_front', 'fn_set_page_as_front_for_loggedin_user' );
    
        /**
         * If user is not logged in, set our static page to act as home page
         * @param $value
         * @return int
         */
        function fn_set_context_based_page_on_front( $value ) {
    
            if( ! is_user_logged_in() ) {
                return $value;
            }
    
            //for logged in user, use page id - in this case 56
            return 56;
            //change with your own page id.
        }
      add_filter( 'pre_option_page_on_front', 'fn_set_context_based_page_on_front' );
    
    • 0

Оставить ответ

You must login to add an answer.