覆盖wordpress的404页面

时间:2012-06-12 17:16:34

标签: php wordpress

我们有一个数百个网址的数据库,我们想要显示相似的内容。但我们不想在wordpress中制作数百页。

有没有办法可以覆盖/禁止wordpress 404页面来显示此数据库中所有网址上已有网页的内容。

我只需要将代码写到一个URL上,我就可以完成其余的工作。

谢谢

3 个答案:

答案 0 :(得分:1)

在主题文件夹中使用404.php

通过这种方式,您可以找到被调用的URL并稍微自定义页面。

希望这有帮助, 杰森

<强> [更新]

我不明白为什么需要插件。在404.php模板中你会有这样的东西:

<?php 

get_header();


//Get called URL 
$url = $_SERVER['REQUEST_URI'];

//Some function to check database to see if this URL should exist
if(checkIfPageExists($url)) {
   //Page Code Here
} else {
   //404 Code Here
}


get_footer();

?>

[更新2]

修复状态代码很简单:

<?php 

//Get called URL 
$url = $_SERVER['REQUEST_URI'];

//Some function to check database to see if this URL should exist
if(checkIfPageExists($url)) {
   //Set 200 Status
   status_header( "200" );
   //Get Header
   get_header();
   //Page Code Here
} else {
   //Set 404 Status
   status_header( "404" );
   //Get Header
   get_header();
   //404 Code Here
}


get_footer();

?>

答案 1 :(得分:0)

您可以使用htaccess。在wordpress安装中的htaccess文件顶部输入以下内容。 404page.html是您创建的错误页面。

ErrorDocument 404 /404page.html

希望有所帮助。

答案 2 :(得分:0)

您可以在htaccess文件中使用301重定向

RewriteRule ^your-db-url.html /your-redirect-page.html [L,R=301]

您也可以编写一个脚本,以此格式列出所有网址,并将其复制并粘贴到您的wordpress重写规则上方的.htaccess文件中。