Недавно я столкнулся с очень интересной задачей и решил поделиться этим с вами. Мне нужно было подключать другой шаблон темы WordPress для пользователей, у которых есть доступ к курсу.
Все мы знакомы с интерфейсом шаблонов страниц и типов записей в WordPress, который в Gutenberg выглядит вот так:
Чтобы шаблон лендинга отображался только для неавторизованных пользователей, мы можем воспользоваться хуком 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; }