我在本地计算机上有这个基本的404页面。
我已经编辑了我的.htaccess:
ErrorDocument 404 /wordpress/wp-content/themes/test_theme/404.php
404页面确实有效并且打开正常,但是当我添加wp_head();
时,它会中断。背景颜色仍然正常显示,但页面的其余部分失败。
<!DOCTYPE html>
<html lang='en-gb'>
<head>
<title>404 Error</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<link href='http://fonts.googleapis.com/css?family=Monoton' rel='stylesheet' type='text/css'>
<style type="text/css">
body {
background-color: #111;
}
.board {
position: absolute;
top: 50%;
left: 50%;
height: 150px;
width: 500px;
margin: -75px 0 0 -250px;
padding: 20px;
font: 75px/75px Monoton, cursive;
text-align: center;
text-transform: uppercase;
text-shadow: 0 0 80px red, 0 0 30px firebrick, 0 0 6px darkred;
color: red;
}
#error {
color: white;
text-shadow: 0 0 80px white, 0 0 30px green, 0 0 6px blue;
}
</style>
<?php wp_head(); ?>
</head>
<body>
<div class="board"><p id="error">error</p><p id="code">404</p></div>
<h2><?php _e( 'This is somewhat embarrassing, isn’t it?', 'twentythirteen' ); ?></h2>
<p><?php _e( 'It looks like nothing was found at this location. Maybe try a search?', 'twentythirteen' ); ?></p>
<?php get_search_form(); ?>
</body>
</html>
我想通过以下方式添加一些javascript:
if(is_404()){ wp_register_script('404',get_template_directory_uri().'/js/jquery.novacancy.min.js', false, NULL, true);
wp_enqueue_script('404');
}
但添加wp_footer();
也会破坏页面,就像wordpress打破了我的404页面一样。
答案 0 :(得分:2)
问题是您直接加载主题文件,它不会加载所有必需的WordPress文件,因此也不会加载函数。因此,wp_footer();
和wp_header();
函数不存在。
WordPress会自动处理404错误,因此请删除您添加到.htaccess文件中的行,它将开始正常运行。
请务必阅读以下文章:Creating an Error 404 Page in WordPress
答案 1 :(得分:1)
我认为cale_b已经回答了你,但是为了提供更多信息,wp_head和get_footer是wordpress函数,所以你不能在不调用get_header的情况下调用它们,或者包含在wp_blog_header.php中。
如果你只需要这些函数而不需要整个标题(可能你想要一个自定义的标题,或者根本没有标题),我建议你在php文件的最顶层包含wp_blog_header.php,或者至少在任何标题之前wordpress功能。
wp_blog_header.php可以在wordpress安装的根目录中找到。