Les pages d'erreur sont affichées via .HTACCESS, si vous utilisez Apache, vous utiliserez la ErrorDocument
directive et y ajouterez le statut et l'URL.
Il ressemblerait donc à ceci dans votre fichier .htaccess:
ErrorDocument 401 http://yourwebsite.com/error-401
ErrorDocument 403 http://yourwebsite.com/error-403
ErrorDocument 500 http://yourwebsite.com/error-500
Vous pouvez utiliser la fonction suivante ci-dessous. Cela ajoutera dynamiquement ce qui est nécessaire au fichier HTACCESS pour vous ou vous pouvez le faire manuellement.
1. Ajoutez des pages:
Vous devrez ensuite aller dans votre tableau de bord et créer les pages comme n'importe quelle page normale ('Dashboard'> 'Pages'> 'New'). Ils peuvent être intitulés comme vous le souhaitez, assurez-vous simplement que le slug est le même que dans la fonction ci-dessous (Slug: error-401, error-403, error-404, error-500). Vous pouvez également utiliser le modèle de page pour créer la mise en page et le style que vous souhaitez pour ces pages spécifiques. Suivez les instructions de WordPress Codex pour cela.
2. Ajouter une fonction:
// 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 !! REMARQUES SUR LA FONCTION CI-DESSUS
Lors du déplacement de votre site Web ou de la modification de la structure des URL
La chose à retenir avec la fonction ci-dessus est bien qu'elle vérifie si les directives ErrorDocument existent déjà avant de les écrire dans votre fichier HTACCESS, elle ne réécrira pas les directives ErrorDocument si vous modifiez ou déplacez votre blog pour refléter les emplacements de page mis à jour. Vous devez d'abord supprimer les directives ErrorDocument existantes dans votre fichier HTACCESS, puis réexécuter cette fonction pour créer les nouvelles directives.
Correct crochet pour déclencher la fonction UNE SEULE FOIS
L'autre chose à noter est cette fonction, l'utilisation de l' init
action s'exécutera à chaque fois que vos pages se chargent, ce qui est super inutile et inutile donc je suggérerais de l'ajouter à un plugin et d'utiliser register_activation_hook
plutôt afin qu'il ne se déclenche qu'une seule fois lors de l'activation du plugin
Autorisations de fichier
Il est également impératif que votre .htaccess soit accessible en écriture lorsque vous utilisez la fonction ci-dessus, assurez-vous donc qu'il dispose des autorisations de fichier correctes, quelque chose comme CHMOD777.