Недавно я столкнулся с очень интересной задачей и решил поделиться этим с вами. Мне нужно было подключать другой шаблон темы WordPress для пользователей, у которых есть доступ к курсу.
Все мы знакомы с интерфейсом шаблонов страниц и типов записей в WordPress, который в Gutenberg выглядит вот так:
Если вам интересно лучше разбираться, как устроены файлы тем в WordPress и как работает их иерархия, то рекомендую посмотреть этот видеоурок.
Чтобы шаблон лендинга отображался только для неавторизованных пользователей, мы можем воспользоваться хуком template_include
.
/** * @snippet Меняем шаблон WordPress для неавторизованных пользователей * @author Миша Рудрастых * @url https://misha.agency/wordpress/menyaem-podklyuchaemyj-shablon-straniczy-na-letu.html */ add_filter( 'template_include', 'true_change_template', 25 ); function true_change_template( $template ) { // если это страница определённого типа записи // и если пользователь авторизован // то лендинг ему вообще ни к чему if ( is_singular( 'course' ) && is_user_logged_in() ) { // $template = __DIR__ . '/single-course.php'; $template = locate_template( 'single-course.php' ); } return $template; }
functions.php
, обратите внимание, что он лежит в одной директории с файлом single-course.php
.__DIR__
тоже будет достаточно.
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.