在WordPress中,我正在操作404响应。我想在谷歌收到404错误之前给出答复

时间:2012-10-24 作者:Dena

也许标题中的问题并没有解释我到底想要什么。所以我将解释一个逻辑,然后问我从中得到了什么问题。

我们正在使用wordpress。我们有两类选项1(有64个不同的值)和选项2(有8个不同的值)。我们需要像ourdomain/Option1/Option2这样的url,这取决于用户的位置。根据选项1和选项2,该url上的数据将是特定的。我们不希望所有这些64*8的实际wordpress页面都被创建。

所以在网上搜索了很多之后,我们有了一个解决方案,我实现了一个路由插件。

该代码片段如下所示。

function site_router() {

global $route,$wp_query,$window_title;
error_reporting(E_ALL);
if ( $wp_query->is_404 ) 
    {
        $wp_query->is_404 = false;
        $cUrl="http://".$_SERVER[\'HTTP_HOST\'].$_SERVER[\'REQUEST_URI\'];
        $targetUrl="";
        switch($cUrl)
                {
                /* According to condition  I had written diffent cases like below.
                */
        default :
            {           
            include(get_template_directory() . "/home.php" ); 
            $template =locate_template(\'pagepath/home.php\');
                        $window_title = \'dynamically it will come\';
                        if ($template) {
                        load_template($template);
                        die;
                        }
                    }                   

                }
         }
}

add_action( \'wp\', \'site_router\');
因此,我的目标成功地实现了。

但现在的问题是,谷歌表示他们得到的是404错误。我认为很明显,它会给出错误,因为我们正在做所有的模板加载和所有的东西。

那么,在谷歌收到404回复之前,有谁能指导我如何做到这一点呢。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

WordPress的功能是send a different status header:

status_header( 200 );
如果您在WordPress发送其标题之后发送,而在打印任何内容之前发送,您将获得状态标题200。

您还可以筛选\'status_header\' 并在此处更改值。看见wp-includes/functions.php 有关详细信息。

结束

相关推荐

Debugging WP routing

对于一些帖子,我看到404页,即使存在帖子,在WP中使用永久链接决定需要呈现什么对象的位置在哪里?谢谢