Сторінки помилок подаються через .HTACCESS, якщо ви використовуєте Apache, ви б використали ErrorDocument
директиву та додали до неї статус та URL.
Так це виглядатиме так у вашому .htaccess файлі:
ErrorDocument 401 http://yourwebsite.com/error-401
ErrorDocument 403 http://yourwebsite.com/error-403
ErrorDocument 500 http://yourwebsite.com/error-500
Ви можете використовувати наступну функцію нижче. Це динамічно додасть те, що потрібно файлу HTACCESS для вас, або ви можете це зробити вручну.
1. Додати сторінки:
Потім вам потрібно буде зайти на інформаційну панель і створити Сторінки, як і будь-яка звичайна сторінка ("Інформаційна панель"> "Сторінки"> "Нова"). Їх можна назвати тим, що вам завгодно, просто переконайтеся, що слизь той самий, як у функції нижче (Slug: помилка-401, помилка-403, помилка-404, помилка-500). Також ви можете використовувати шаблон сторінки для створення будь-якого макета та стилю для цих конкретних сторінок. Дотримуйтесь інструкцій WordPress Codex для цього.
2. Додати функцію:
// 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 !! ПРИМІТКИ ПРО ПРОБЛЕМУ ФУНКЦІЮ
Під час переміщення веб-сайту або зміни структури URL-адреси
Слід пам’ятати про вищевказану функцію, хоча вона перевірить, чи існують директиви ErrorDocument, перш ніж записати їх у свій файл HTACCESS, вона не перезаписає директиви ErrorDocument, якщо ви зміните або пересунете свій блог, щоб відобразити оновлені місця на сторінці. Вам потрібно спочатку видалити існуючі директиви ErrorDocument у вашому файлі HTACCESS, а потім повторно запустити цю функцію для створення нових директив.
Виконайте правильний гачок, щоб запустити функцію ТІЛЬКИ ОДИН
Інша річ, яку слід відзначити, це ця функція, використання init
дії буде запускатися кожного разу, коли ваші сторінки завантажуються, що є надто непотрібним та марним, тому я б запропонував додати її до плагіна та register_activation_hook
скоріше використовувати , щоб він активувався лише один раз при активації плагіна
Дозволи файлів
Крім того, обов'язково потрібно, щоб ваш .htaccess був доступним для запису при використанні вищевказаної функції, тому переконайтеся, що він має правильні дозволи на файли, щось на зразок CHMOD777.