Le pagine di errore vengono visualizzate tramite .HTACCESS, se si utilizza Apache si utilizza la ErrorDocument
direttiva e si aggiunge lo stato e l'URL.
Quindi sembrerebbe così nel tuo file .htaccess:
ErrorDocument 401 http://yourwebsite.com/error-401
ErrorDocument 403 http://yourwebsite.com/error-403
ErrorDocument 500 http://yourwebsite.com/error-500
È possibile utilizzare la seguente funzione di seguito. Questo aggiungerà dinamicamente ciò che è necessario al file HTACCESS per te o potresti farlo manualmente.
1. Aggiungi pagine:
Dovresti quindi accedere alla tua Dashboard e creare le Pagine come una normale pagina ("Dashboard"> "Pagine"> "Nuovo"). Possono essere intitolati come vuoi, assicurati che lo slug sia lo stesso della funzione di seguito (Slug: errore-401, errore-403, errore-404, errore-500). Inoltre puoi utilizzare il modello di pagina per creare qualsiasi layout e stile desideri per queste pagine specifiche. Seguire le istruzioni per WordPress Codex per questo.
2. Aggiungi funzione:
// 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 !! NOTE SULLA FUNZIONE SOPRA
Quando si sposta il sito Web o si modifica la struttura dell'URL
La cosa da ricordare con la funzione sopra è anche se verificherà se le direttive ErrorDocument esistono già prima di scriverle nel tuo file HTACCESS, non riscriverà le direttive ErrorDocument se dovessi cambiare o spostare il tuo blog in modo da riflettere le posizioni delle pagine aggiornate. Dovresti prima eliminare le direttive ErrorDocument esistenti nel tuo file HTACCESS e quindi rieseguire questa funzione per creare le nuove direttive.
Hook corretto per attivare la funzione SOLO UNA VOLTA
L'altra cosa da notare è questa funzione, l'utilizzo init
dell'azione verrà eseguito ogni volta che le pagine vengono caricate, il che è super inutile e dispendioso, quindi suggerirei di aggiungerlo a un plug-in e di usarlo register_activation_hook
piuttosto che si attivi solo una volta all'attivazione del plug-in
Autorizzazioni file
Inoltre è indispensabile che il tuo .htaccess sia scrivibile quando usi la funzione sopra, quindi assicurati che abbia i permessi dei file corretti, qualcosa come CHMOD777.