As páginas de erro são exibidas via .HTACCESS, se você estiver usando o Apache, usaria a ErrorDocument
diretiva e adicionaria o status e a URL a ela.
Portanto, seria assim no seu arquivo .htaccess:
ErrorDocument 401 http://yourwebsite.com/error-401
ErrorDocument 403 http://yourwebsite.com/error-403
ErrorDocument 500 http://yourwebsite.com/error-500
Você pode usar a seguinte função abaixo. Isso adicionará dinamicamente o que é necessário ao arquivo HTACCESS para você ou você poderá fazê-lo manualmente.
1. Adicione páginas:
Você precisaria entrar no seu Painel e criar as Páginas como qualquer página normal ('Painel'> 'Páginas'> 'Novo'). Eles podem ter o título que você desejar, apenas verifique se a lesma é a mesma da função abaixo (Lesma: erro-401, erro-403, erro-404, erro-500). Além disso, você pode usar o modelo de página para criar o layout e o estilo desejados para essas páginas específicas. Siga as instruções do WordPress Codex para isso.
2. Adicionar Função:
// Create Custom Error Pages in WordPress using HTACCESS
function royal_custom_error_pages() {
// Get HTACCESS path & dynamic website url
$htaccess_file = '.htaccess';
$website_url = get_bloginfo('url').'/';
// Check & prevent writing error pages more than once
$check_file = file_get_contents($htaccess_file);
$this_string = '# BEGIN WordPress Error Pages';
if( strpos( $check_file, $this_string ) === false) {
// Setup Error page locations dynamically
$error_pages .= PHP_EOL. PHP_EOL . '# BEGIN WordPress Error Pages'. PHP_EOL. PHP_EOL;
$error_pages .= 'ErrorDocument 401 '.$website_url.'error-401'.PHP_EOL;
$error_pages .= 'ErrorDocument 403 '.$website_url.'error-403'.PHP_EOL;
$error_pages .= 'ErrorDocument 404 '.$website_url.'error-404'.PHP_EOL;
$error_pages .= 'ErrorDocument 500 '.$website_url.'error-500'.PHP_EOL;
$error_pages .= PHP_EOL. '# END WordPress Error Pages'. PHP_EOL;
// Write the error page locations to HTACCESS
$htaccess = fopen( $htaccess_file, 'a+');
fwrite( $htaccess, $error_pages );
fclose($htaccess);
}
}
add_action('init','royal_custom_error_pages'); // This will run the function everytime, not ideal!
// register_activation_hook( __FILE__, 'royal_custom_error_pages' ); // Using a plugin, runs only once!
NB !! NOTAS SOBRE A FUNÇÃO ACIMA
Ao mover seu site ou alterar a estrutura do URL
O que deve ser lembrado com a função acima é que, embora ele verifique se as diretivas ErrorDocument já existem antes de gravá-las no arquivo HTACCESS, ele não reescreverá as diretivas ErrorDocument, caso você altere ou mova o blog para refletir os locais atualizados da página. Você precisaria excluir as diretivas ErrorDocument existentes no arquivo HTACCESS primeiro e, em seguida, execute novamente esta função para criar as novas diretivas.
Gancho correto para disparar a função SOMENTE UMA VEZ
A outra coisa a se notar é essa função: usar a init
ação será executada toda vez que suas páginas forem carregadas, o que é super desnecessário e desperdício, então eu sugiro adicioná-lo a um plug-in e usar o register_activation_hook
modo para que ele seja acionado apenas uma vez na ativação do plug-in
Permissões de arquivo
Além disso, é imprescindível que seu arquivo .htaccess seja gravável ao usar a função acima, portanto, verifique se ele possui as permissões de arquivo corretas, como CHMOD777.