2012-06-12 66 views
0

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

有没有一种方法可以覆盖/抑制wordpress 404页面以显示来自此数据库中所有网址上的页面(已创建)的内容。

我所需要的只是将代码做到一个URL,剩下的事情就可以完成。

谢谢

回答

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(); 

?> 
+0

我需要创建一个插件,所以我需要挂钩到WordPress的某个地方。 –

+0

我已更新我的回答 – dciso

+1

问题在于它仍然会返回404状态。这可能不是想要的。 – Nick

0

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

ErrorDocument 404 /404page.html 

希望有帮助。

0

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

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

你也可以编写一个脚本,以这种格式列出你的所有网址,然后将它复制并粘贴到你的.htaccess文件中,超出你的wordpress重写规则。