Como corrigir o painel frontend que não carrega para instrutores no Tutor LMS
O que é o dashboard instrutor do Tutor LMS?
O painel instrutor do Tutor LMS é o frontend dashboard que o instrutor acessa em SeuSite/dashboard, gerado pelo shortcode tutor_dashboard na página atribuída em Tutor LMS -> Settings -> General. É ali que o instrutor vê My Courses, Withdrawals, Quiz Attempts, Analytics e o botão Create a New Course. Quando o painel instrutor não carrega, essa página abre totalmente em branco, aparece sem o cabeçalho e o rodapé do tema, retorna 404 ou trava no spinner. O front-end público do site segue no ar, porque o problema está na página do dashboard, no template do tema ou nas rotas, não no servidor.
Como identificar
- A página em SeuSite/dashboard abre totalmente em branco, sem o menu lateral do instrutor (My Courses, Withdrawals, Analytics).
- O painel aparece quebrado, sem o cabeçalho e o rodapé do tema, com a frase Broken Dashboard relatada após instalar Yoast SEO ou Rank Math.
- Mensagem 404 Not Found ao abrir a URL do dashboard do instrutor.
- O painel fica preso no spinner de carregando ou acusa nonce inválido ao salvar dados do instrutor.
- O console do navegador (F12) mostra erro de JavaScript ou um 404 em arquivo .js do Tutor LMS.
Como prevenir
- Mantenha o permalink em Post Name e a página do Dashboard sempre atribuída em Tutor LMS -> Settings -> General
- Use tema-filho e aplique a condição de get_header e get_footer no dashboard.php desde a primeira customização
- Exclua os scripts do Tutor LMS da compressão hard de JS e HTML desde a instalação do plugin de cache
- Atualize Tutor LMS, tema e plugins SEO juntos e teste o painel do instrutor em ambiente de staging
Causa
- Tema que sobrescreve o template tutor/dashboard.php e chama get_header e get_footer sem a condição de short code e da constante OTLMS_VERSION, o que quebra o painel ao ativar Yoast SEO ou Rank Math (documentado pela Themeum).
- Página do Dashboard não atribuída em Tutor LMS -> Settings -> General, fazendo o shortcode tutor_dashboard apontar para lugar nenhum.
- Permalink fora de Post Name em Configurações -> Links Permanentes, o que invalida a rota /dashboard e gera 404.
- Página do Dashboard definida como página inicial do site, uso que a Themeum proíbe para a Dashboard e a Course Archive.
- Plugin de cache com compressão hard de JavaScript e HTML, que corrompe os scripts do painel e gera nonce inválido, ou recurso Protect do Jetpack bloqueando as requisições do dashboard.
- Instrutor com a conta ainda pendente de aprovação, sem a role de instrutor aplicada, o que entrega um painel sem o menu de criação de curso.
Como resolver
- Confirme a página do Dashboard e o permalink: verifique se a página do painel está atribuída e se o permalink está em Post Name, que é a rota exigida pelo Tutor LMS. Salve os links permanentes para regerar as rotas. A página do Dashboard nunca pode ser a página inicial do site.
Tutor LMS -> Settings -> General -> Dashboard Page (atribua a página com o shortcode tutor_dashboard) Configurações -> Links Permanentes -> Nome do post -> Salvar alterações - Cheque se o tema sobrescreve o dashboard.php: muitos temas trazem uma cópia do template do painel. Procure o arquivo do dashboard dentro da pasta tutor do tema e abra para edição. Se o arquivo existir, é ele que precisa da condição do próximo passo. Faça isso sempre no tema-filho.
wp-content/themes/SEU-TEMA/tutor/dashboard.php - Aplique a condição de header e footer recomendada pela Themeum: no dashboard.php do tema, troque as chamadas diretas de get_header e get_footer pelas versões condicionais abaixo. Isso impede que Yoast SEO ou Rank Math quebrem o painel quando o tema renderiza o dashboard como short code.
$is_by_short_code = isset($is_shortcode) && $is_shortcode===true; if(!$is_by_short_code && !defined( 'OTLMS_VERSION' )) { get_header(); } if(!$is_by_short_code && !defined( 'OTLMS_VERSION' )) { get_footer(); } - Desligue a compressão hard de JS e HTML no cache: no plugin de cache, desative a compressão hard de JavaScript e HTML ou exclua os scripts do Tutor LMS dessas otimizações. Se usa Jetpack, desative o recurso Protect. Depois limpe todo o cache e o cache do navegador.
Excluir da minificação: /wp-content/plugins/tutor/assets/js/tutor.min.js Excluir da minificação: /wp-content/plugins/tutor/assets/js/tutor-front.min.js - Valide a role do instrutor: confirme em Tutor LMS -> Instructors que a conta está aprovada. Um instrutor pendente recebe um painel sem o menu de criação de curso. Aprove a conta e peça para o instrutor recarregar o painel já logado.
Tutor LMS -> Instructors -> selecione o usuário -> Approve
// wp-content/themes/SEU-TEMA/tutor/dashboard.php
// Condição da Themeum: só chama header/footer do tema quando NÃO é short code do Tutor LMS
$is_by_short_code = isset($is_shortcode) && $is_shortcode === true;
if ( ! $is_by_short_code && ! defined( 'OTLMS_VERSION' ) ) {
get_header();
}
// ... markup do painel do instrutor ...
if ( ! $is_by_short_code && ! defined( 'OTLMS_VERSION' ) ) {
get_footer();
}














