Intereting Posts
Режим отладки показывает строгие стандарты Как ограничить пользователя публикацией сообщений в день и за роль? Создайте короткий код, который создает форму для редактирования пользователями своей информации Перенаправление на другую страницу посредством регистрации, в зависимости от страницы Пользовательский запрос выбора для таксономий, которые имеют должности, классифицированные в другой таксономии Посты объявлений индексации страниц в статическом пользовательском запросе страницы Перемещено WP с example.com/blog на example.com, теперь не удается добавить страницы Нужно ли нам проверять, санировать или фильтровать простые числовые суперглобалы (cookie и post)? Угнать URL для фильтрации Как добавить подменю с AJAX? post_parent равно 0 при загрузке новых файлов Добавление класса current_post_item к текущему сообщению в цикле Pagination добавление дополнительных сообщений только на стр. 2 Как вывести список должностей в категории, за исключением сообщений в подкатегориях категории дополнительный код в <head> – пустая функция jquery

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

После googling у меня есть часть кода, чтобы установить определенную страницу в качестве домашней страницы в wordpress. В коде говорится,

add_action('init', 'loginCheck'); function loginCheck() { if (is_user_logged_in()) { $page = get_page_by_title('My Account'); } else { $page = get_page_by_title('Shop'); } update_option('page_on_front', $page->ID); update_option('show_on_front', 'page'); } 

Но у меня мало соображений относительно вышеприведенного кода.

  1. По моему мнению, вышеуказанный код обновит базу данных при каждой загрузке страницы независимо от логина.
  2. Что произойдет, если два пользователя посещают сайт одновременно, где один входит в систему, а другой – нет.
  3. Есть ли лучшие способы переключения домашней страницы на основе входа? т.е. для входа в систему пользователь может получить доступ к различным страницам через меню с помощью настраиваемой домашней страницы, в то время как гостевой пользователь должен только получить доступ к определенной странице, в идеале другой genaralized общедоступной домашней странице, и если он / она пытается получить доступ к другим страницам, необходимо перенаправить на общую домашнюю страницу только.

Solutions Collecting From Web of "настройка определенной домашней страницы для зарегистрированных пользователей"

О ваших соображениях: –

  • Да, верно! Он будет обновлять страницу при каждом посещении.
  • База данных будет обновляться чаще, основываясь на том, какой пользователь делает запрос. Но не будет некорректного вывода.
  • Лучше я предлагаю использовать фильтр template_include . Назначьте статическую переднюю страницу, затем примените шаблон к этой странице, проверив, зарегистрирован ли пользователь или нет. Таким образом, вы можете отображать различные макеты / дизайн для зарегистрированных пользователей и посетителей.

См. Этот пример: –

 add_filter( 'template_include', 'home_page_template', 99 ); /** * Home page Template based on user * @param type $template * @return type */ function home_page_template( $template ) { if (!is_front_page()) { return $template; //Return if not home page } $new_template = false; if (is_user_logged_in()) { $new_template = locate_template( array( 'logged-in-users.php' ) ); } else { $new_template = locate_template( array( 'not-logged-in-users.php' ) ); } if ( !empty($new_template) ) { return $new_template ; //Only return if template exist } return $template; //Always return value from filter } 

Для остальных вещей вы можете создать два меню для зарегистрированных и гостевых пользователей и условно назвать их в заголовочном файле. Чтобы отменить доступ к некоторым страницам / сообщениям для гостевых пользователей, используйте init hook с is_user_logged_in() и временно переадресовывайте на некоторую страницу. Вы можете найти этот сайт для примера этого метода.