Modelos de Temas: Páginas de Erros
Assim como todo bom usuário de internet, pode acontecer dele digitar uma URL que não exista em nosso site, e acabar caindo na famosa página 404 Não Encontrado.
Só que, se ele fizer isso atualmente no nosso tema, ele vai cair direto na index.php
, que sabemos que não é beeeem lá uma página de erro, não é verdade?
E para casos como esses, temos que estar preparados 👻
Com relação a páginas de erros, o WordPress conta com diversos modelos de templates que podemos usar para tratar cada um deles (consulte os códigos HTTP para ver quais são).
Como você viu no link acima - isto é, se você clicou 😑 -, vemos que existem diversos tipos de códigos diferentes, que vão desde, 200, 300, 400, 500... Onde o WordPress oferece suporte a maioria deles.
Vamos começar pelos mais relevantes:
401.php
: Página de erro para o código de status HTTP 401 (Não Autorizado).
403.php
: Página de erro para o código de status HTTP 403 (Proibido).
404.php
: Página de erro para o código de status HTTP 404 (Não Encontrado).
500.php
: Página de erro para o código de status HTTP 500 (Erro Interno do Servidor).
502.php
: Página de erro para o código de status HTTP 502 (Gateway Ruim).
503.php
: Página de erro para o código de status HTTP 503 (Serviço Indisponível).
504.php
: Página de erro para o código de status HTTP 504 (Tempo Limite da Porta de Entrada).
Beleza, então é só criar um desses arquivos dentro da pasta do meu tema que o WordPress lida com o resto?
Claro que não, você vai precisar estiliza-lo 😉
Criando um arquivo de status code
Para testarmos, vou pegar como exemplo o arquivo 404.php
.
Dentro da pasta raiz do seu tema, crie um novo arquivo chamado 404.php
:
<?php
/**
* O template para a página 404
*
* @link https://codex.wordpress.org/Template_Hierarchy
*
* @package WPMicilini
* @since 1.0
*/
get_header();
?>
<h1>404 Página não encontrada!</h1>
<p><a href="esc_url(home_url('/'))"></a></p>
<?php
get_footer();
?>
Como podemos ver, o conteúdo inicial sempre começa com a abertura das tags PHP, onde inserimos algumas informações relevantes sobre o arquivo em formato de comentários, e é claro, importamos o cabeçalho e o rodapé por meio das funções get_header()
e get_footer()
.
A página de status code, é bem simples e enxuta, onde no meu caso, inseri uma tag <h1>
informando o título da página, junto com um link que leva o usuário diretamente para a página inicial do nosso site.
home_url('/')
: Retorna a URL do seu site principal.
A página de status code, costuma ser bem simples mesmo, contendo somente um link que leva o seu visitante para a página principal, onde em muitos temas, nem cabeçalho e rodapé possuem, sabia disso?
É claro que você pode estilizar as suas páginas de status code da maneira como desejar, trazendo novas funções, tags condicionais, novos layouts e etc.
É simples, basta digitar na URL um endereço do seu site que não existe. Por exemplo: http://localhost/minha-primeira-aplicacao/eu-sei-que-essa-pagina-nao-existe
Estilizando sua página de status code
Muitos criadores de tema, costumam estilizar de forma um pouco diferente suas páginas de status code, principalmente a página 404.
Onde alguns deles costumam adicionar um formulário de pesquisa, e um widget responsável por trazer os últimos 3 posts publicados, vejamos:
<?php
/**
* O template para a página 404
*
* @link https://codex.wordpress.org/Template_Hierarchy
*
* @package WPMicilini
* @since 1.0
*/
get_header();
?>
<h1>404 Página não encontrada!</h1>
<p><a href="esc_url(home_url('/'))"></a></p>
<h2>Que tal fazer uma busca?</h2>
<?php get_search_form(); ?>
<?php the_widget('WP_Widget_Recent_Posts', array('title' => 'Latest Posts', 'number' => 4)); ?>
<?php
get_footer();
?>
get_search_form()
: Função do WordPress que retorna o formulário de pesquisa padrão do WordPress, ou o conteúdo do arquivo searchform.php
quando este existir.
the_widget()
: É uma função do WordPress que permite exibir um widget específico em uma área de widget no seu tema ou template.
No caso dele, estamos usando o recurso WP_Widget_Recent_Posts
, que é um widget padrão do WordPress que exibe uma lista dos posts mais recentes do seu site.
Vejamos um exemplo de uso com parâmetros mais completos:
the_widget('WP_Widget_Recent_Posts', array(
'title' => 'Posts Recentes',
'number' => 5, // Número de posts a exibir
'taxonomy' => 'category', // Taxonomia a ser excluída (opcional)
'exclude' => '1,2,3', // IDs de categorias a serem excluídas (opcional)
'author' => '', // ID do autor a ser excluído (opcional)
));
Outros tipos de modelos de páginas
Acompanhe a lista abaixo, onde listamos os diferentes modelos de páginas associados com os status code suportados pelo HTTP:
400.php
: Página de erro para o código de status HTTP 400 (Solicitação Inválida).
401.php
: Página de erro para o código de status HTTP 401 (Não Autorizado).
402.php
: Página de erro para o código de status HTTP 402 (Pagamento Necessário).
403.php
: Página de erro para o código de status HTTP 403 (Proibido).
404.php
: Página de erro para o código de status HTTP 404 (Não Encontrado).
405.php
: Página de erro para o código de status HTTP 405 (Método Não Permitido).
406.php
: Página de erro para o código de status HTTP 406 (Não Aceitável).
407.php
: Página de erro para o código de status HTTP 407 (Autenticação de Proxy Necessária).
408.php
: Página de erro para o código de status HTTP 408 (Tempo Limite da Solicitação).
409.php
: Página de erro para o código de status HTTP 409 (Conflito).
410.php
: Página de erro para o código de status HTTP 410 (Desaparecido).
411.php
: Página de erro para o código de status HTTP 411 (Comprimento Necessário).
412.php
: Página de erro para o código de status HTTP 412 (Pré-condição Falhada).
413.php
: Página de erro para o código de status HTTP 413 (Entidade de Solicitação Muito Grande).
414.php
: Página de erro para o código de status HTTP 414 (URI da Solicitação Muito Longa).
415.php
: Página de erro para o código de status HTTP 415 (Tipo de Mídia Não Suportado).
416.php
: Página de erro para o código de status HTTP 416 (Solicitação de Faixa Não Satisfatória).
417.php
: Página de erro para o código de status HTTP 417 (Falha na Expectativa).
418.php
: Página de erro para o código de status HTTP 418 (Eu sou um bule de chá).
419.php
: Página de erro para o código de status HTTP 419 (Timeout durante autenticação).
420.php
: Página de erro para o código de status HTTP 420 (Aprimorar Sua Calma).
421.php
: Página de erro para o código de status HTTP 421 (Conexão Indireta com Requisição).
422.php
: Página de erro para o código de status HTTP 422 (Entidade Não Processável).
423.php
: Página de erro para o código de status HTTP 423 (Bloqueado).
424.php
: Página de erro para o código de status HTTP 424 (Falha de Dependência).
426.php
: Página de erro para o código de status HTTP 426 (Upgrade Necessário).
428.php
: Página de erro para o código de status HTTP 428 (Pré-condição Requerida).
429.php
: Página de erro para o código de status HTTP 429 (Muitas Requisições).
431.php
: Página de erro para o código de status HTTP 431 (Solicitação de Campos de Cabeçalho Muito Grande).
451.php
: Página de erro para o código de status HTTP 451 (Indisponível por Motivos Legais).
500.php
: Página de erro para o código de status HTTP 500 (Erro Interno do Servidor).
501.php
: Página de erro para o código de status HTTP 501 (Não Implementado).
502.php
: Página de erro para o código de status HTTP 502 (Bad Gateway).
503.php
: Página de erro para o código de status HTTP 503 (Serviço Indisponível).
504.php
: Página de erro para o código de status HTTP 504 (Gateway Timeout).
505.php: Página de erro para o código de status HTTP 505 (Versão HTTP Não Suportada).
506.php
: Página de erro para o código de status HTTP 506 (Variação de Negociação Também Negociável).
507.php
: Página de erro para o código de status HTTP 507 (Armazenamento Insuficiente).
508.php
: Página de erro para o código de status HTTP 508 (Loop Detectado).
510.php
: Página de erro para o código de status HTTP 510 (Exigência de Extensões de Rede).
511.php
: Página de erro para o código de status HTTP 511 (Autenticação de Rede Exigida).
520.php
: Página de erro para o código de status HTTP 520 (Web Server Retorna um Erro Desconhecido).
521.php
: Página de erro para o código de status HTTP 521 (Web Server Está Inativo).
522.php
: Página de erro para o código de status HTTP 522 (Conexão com o Servidor Web Cronometrada).
523.php
: Página de erro para o código de status HTTP 523 (Origem Inacessível).
524.php
: Página de erro para o código de status HTTP 524 (Um Timeout Ocorreu).
525.php
: Página de erro para o código de status HTTP 525 (SSL Handshake Falhou).
526.php
: Página de erro para o código de status HTTP 526 (SSL Certificate Não é Válido).
527.php
: Página de erro para o código de status HTTP 527 (Erro Railgun).
530.php
: Página de erro para o código de status HTTP 530 (Erro de Site Desconhecido).
598.php
: Página de erro para o código de status HTTP 598 (Rede Leva um Tempo).
599.php
: Página de erro para o código de status HTTP 599 (Conexão com a Rede Timeout).
Eu preciso ter todos esses arquivos dentro do meu tema?
Não, pois vale ressaltar que a criação de templates para todos esses códigos de status pode ser excessiva, neste caso, é recomendável escolher aqueles que são mais relevantes para o contexto do seu site.
Conclusão
Neste conteúdo, você aprendeu a criar as páginas de erros no seu tema do WordPress.
Até a próxima lição 🥳