错误页面通过提供。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. Add Pages:
然后,您需要进入仪表板,像任何普通页面一样创建页面(“仪表板”>“页面”>“新建”)。它们可以根据您的意愿命名,只需确保slug与下面的函数相同(slug:error-401、error-403、error-404、error-500)。还可以使用页面模板为这些特定页面创建所需的任何布局和样式。跟随
WordPress Codex 相关说明。
2. Add Function:
// 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!! NOTES ON THE ABOVE FUNCTION
When moving your website or changing URL structure
上述函数需要记住的是,虽然在将错误文档指令写入HTACCESS文件之前,它会检查错误文档指令是否已经存在,但如果您更改或移动博客以反映更新的页面位置,它不会重写错误文档指令。您需要先删除HTACCESS文件中现有的ErrorDocument指令,然后重新运行此函数来创建新指令。
Correct Hook to fire the function ONLY ONCE
另一个需要注意的是此函数,使用
init
操作将在每次加载页面时运行,这是非常不必要和浪费的,因此我建议将其添加到插件并使用
register_activation_hook
相反,它只在插件激活时触发一次
File Permissions
此外,您的。使用上述函数时,htaccess是可写的,因此请确保它具有正确的文件权限,如CHMOD777。