Como corrigir o course archive que não exibe todos os cursos no Tutor LMS
O que é course archive do Tutor LMS sem cursos?
O course archive do Tutor LMS é a página que lista os cursos do site, montada pelo plugin a partir do post type interno de cursos. Cada item dessa listagem é um curso com um status do WordPress, e o Tutor LMS só exibe ao público os cursos que estão em Published. Quando a página aparece vazia, com menos cursos do que o esperado, ou paginada de forma estranha, quase sempre o motivo está no status dos cursos, na configuração de paginação do plugin, em uma camada de cache ou em um filtro de categoria aplicado à URL.
Segundo a documentação oficial do Themeum, o status do curso controla diretamente a visibilidade: cursos em Draft, Pending, Private ou Trash não aparecem na listagem pública. Some-se a isso o controle de quantos cursos são mostrados por página, definido nas configurações do Tutor LMS, e o efeito de plugins de cache e CDN que congelam a página de arquivo. Identificar em qual dessas camadas o curso está sendo filtrado é o que resolve o problema sem mexer no conteúdo dos cursos.
Como identificar
- A página de cursos abre, mas exibe menos cursos do que existem no painel em Tutor LMS, Courses.
- Um curso recém-criado não aparece na listagem pública, embora exista no admin.
- A página de cursos aparece completamente vazia, com a mensagem ‘No Course Found’ ou ‘Nenhum curso encontrado’.
- Os cursos só aparecem para o administrador logado e somem ao abrir a página em uma aba anônima.
- Ao trocar de página na paginação, alguns cursos esperados não estão em nenhuma das páginas.
- A listagem muda de quantidade dependendo se há um parâmetro de categoria ou de filtro na URL.
Como prevenir
- Publique os cursos somente quando estiverem prontos e revise o status antes de divulgar a página, garantindo que estão em Published e não em Draft ou Pending.
- Defina um valor de Courses Per Page coerente com o tamanho do catálogo para evitar que cursos esperados caiam em páginas posteriores sem aviso.
- Configure a limpeza automática de cache na publicação de cursos e mantenha uma regra de purge na CDN para a URL do course archive.
- Evite queries customizadas no loop de cursos; quando precisar, documente os parâmetros usados (post_status, posts_per_page) para não filtrar a listagem sem querer.
Causa
- Os cursos que faltam estão com status Draft, Pending, Private ou Trash; o Tutor LMS só lista publicamente cursos no status Published, conforme a documentação oficial sobre status do curso.
- O número definido em Courses Per Page nas configurações do Tutor LMS é menor que o total de cursos, então o restante fica em páginas subsequentes da paginação em vez de sumir de fato.
- Um plugin de cache de página ou a CDN está servindo uma versão antiga do course archive, gerada antes de os cursos novos serem publicados.
- Há um filtro de categoria ou de tag de curso ativo na URL do arquivo, restringindo a listagem àquela taxonomia e ocultando os demais cursos.
- A página atribuída como listagem de cursos no menu do Tutor LMS aponta para uma página errada ou foi recriada com outro ID, exibindo um arquivo sem os cursos atuais.
- Uma query customizada no tema ou um snippet alterou os parâmetros do loop de cursos (posts_per_page, post_status ou meta_query), filtrando a saída do arquivo.
Como resolver
- Confirme o status dos cursos que faltam: Abra a lista de cursos no painel e verifique o status de cada curso ausente. O Tutor LMS só exibe ao público cursos em Published; cursos em Draft, Pending, Private ou na Lixeira não entram no course archive. Publique o curso que deveria aparecer.
Painel WP -> Tutor LMS -> Courses Filtre por All, Published, Draft, Pending, Private e Trash e localize o curso ausente Abra o curso e em Publicar defina o status como Published (Publicado) - Ajuste a paginação em Courses Per Page: Se o total de cursos é maior que o limite por página, o restante apenas migra para as próximas páginas. Aumente o valor de Courses Per Page nas configurações do curso no Tutor LMS para exibir mais cursos na primeira página, ou confirme que a paginação do arquivo está funcionando.
Painel WP -> Tutor LMS -> Settings -> aba Course Ajuste o campo Courses Per Page para um valor maior (ex.: 12 ou 24) Salve e recarregue a página pública de cursos para conferir a paginação - Limpe o cache do site e da CDN: Cache de página congela o course archive numa versão anterior à publicação dos cursos novos. Limpe o cache do plugin (ex.: WP Rocket) e da CDN (ex.: Cloudflare), depois reabra a página em uma aba anônima para validar sem o cache do navegador.
Painel WP -> Settings -> WP Rocket -> Clear Cache (ou equivalente do seu plugin) Painel da CDN (ex.: Cloudflare) -> Caching -> Purge Everything Abra a página de cursos em uma janela anônima e confira a listagem - Verifique filtro de categoria e a página de listagem: Confirme que a URL aberta é a do arquivo de cursos e não a de uma categoria específica, e que a página de listagem de cursos do Tutor LMS aponta para a página correta. Um filtro de categoria na URL restringe a lista àquela taxonomia.
Abra a URL base de cursos sem parâmetros de categoria ou de busca Painel WP -> Tutor LMS -> Settings -> confira a página atribuída à listagem de cursos Reatribua a página de cursos correta se o ID estiver apontando para outra - Isole query customizada do tema ou de snippets: Se os cursos continuam filtrados, troque para um tema padrão e desative snippets recentes que mexam no loop de cursos, recarregando o arquivo a cada teste. Uma query com posts_per_page baixo ou post_status restrito corta a listagem.
Painel WP -> Aparencia -> Temas -> ative um tema padrão (ex.: Twenty Twenty-Four) Desative plugins de snippets (ex.: Code Snippets) e revise functions.php do tema filho Recarregue a página de cursos a cada teste para identificar o que altera a query
<?php
// Diagnostico: lista no log quantos cursos existem por status no Tutor LMS.
// Rode uma vez (ex.: via snippet) e confira wp-content/debug.log.
add_action( 'init', 'full_debug_tutor_course_status' );
function full_debug_tutor_course_status() {
if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) {
return;
}
$post_type = function_exists( 'tutor' ) ? tutor()->course_post_type : 'courses';
$counts = (array) wp_count_posts( $post_type );
foreach ( $counts as $status => $total ) {
error_log( sprintf( 'Tutor course status %s: %d', $status, (int) $total ) );
}
}














