我们有一个包含数百个 url 的数据库,我们希望为其显示类似的内容。但是我们不想在 wordpress 中制作数百页。
有没有一种方法可以覆盖/抑制 wordpress 404 页面以在此数据库中的所有 url 上显示页面(已创建)的内容。
我所需要的只是对一个 URL 执行此操作的代码,剩下的我就可以完成了。
谢谢
在主题文件夹中使用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();
?>
您可以在 htaccess 文件中使用 301 重定向
RewriteRule ^your-db-url.html /your-redirect-page.html [L,R=301]
您也可以编写一个脚本,以这种格式列出您的所有 url,然后将其复制并粘贴到您的 .htaccess 文件中,高于您的 wordpress 重写规则。
您可以使用 htaccess。在您的 wordpress 安装中的 htaccess 文件顶部输入以下内容。404page.html 是您创建的错误页面。
ErrorDocument 404 /404page.html
希望有帮助。