如何返回404找不到WordPress中不存在的搜索结果页面而不是404软错误

时间:2014-12-23 07:08:45

标签: wordpress

我面临着wordpress搜索的问题。假设网址http://www.ampercent.com/search/page/2/不存在。但它显示200好的状态而不是404找不到。如何为这些页面返回404。此类链接正在创建404软错误问题。当您在wordpress中搜索空查询时会发生这种情况。例如http://www.ampercent.com/?s=

请帮助我一些。

2 个答案:

答案 0 :(得分:1)

是的,可用的解决方案,基本上是" 404软"当一些搜索完成并且没有在页面上找到内容时生成,或者某些时候它可能是非常少的内容或不适当的东西。

您可以使用以下自定义代码强制此类页面在404重定向。

将以下代码放在你的functions.php中:

 function force_404()
  {
     if ( have_posts() )
     {
         return FALSE;
     }

header( 'HTTP/1.0 404 Not Found' );
locate_template( '404.php', TRUE, TRUE );
$GLOBALS['wp_query']->is_404 = TRUE;
return TRUE;

}

现在将上面的函数调用到你的文件top.php& page.php如下:

   if ( force_404() ) {
        return; //here it will stop any further process so soft 404 will not occur
     }

//your file other code continue 

希望以上将有助于解决您的问题。

答案 1 :(得分:0)

一个简单的解决方法是在404.php文件中强制执行标头调用。
例如:

<?php header('HTTP/1.0 404 Not Found'); ?>

<?php get_header(); ?>