WordPress固定链接,停止重定向

时间:2011-09-05 作者:Pedro Lobito

我在WordPress permalinks上遇到了一些困难。WordPress 3.1似乎强制url重定向,例如:

这是正确的帖子url:

http://www.mysite.com/test/1/mypost.html
如果我转到下面的任何url,WordPress会将我重定向到上面的url

http://www.mysite.com/test/1/mypost-teste21.html
or
http://www.mysite.com/test/1/blabla-mypost-example99.html
基本上,我想要实现的是WordPress匹配帖子id,在本例中为1,并在不将用户重定向到正确url的情况下显示帖子内容。关于如何实现这一点,有什么想法吗?

谢谢大家!

PS-请不要将这个问题转移到SO WordPress,因为我已经在那里尝试了几天没有运气的答案了。

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

首先,我想说你为什么要这样做,我真的不认为这是个好主意,但无论如何。。。

如果你进去看看/wp-includes/canonical.php, 你会看到WP是如何在这方面与你对抗的。我所知道的绕过它的唯一方法是根据post id查询var(应该设置,希望正确)自己查找帖子,并重置$wp_query 全局设置为找到的任何内容,然后手动设置状态标头,以便不会将404发送到浏览器。

function wpse27871_404_fakeout() {
    global $wp_query;
    if( $wp_query->is_404 && get_query_var(\'p\') ):
        $this_query = new WP_Query( \'p=\'.get_query_var(\'p\') );
        if( $this_query->post_count !== 0 ):
            $wp_query = $this_query;
            status_header(200);
        endif;
    endif;
}
add_action(\'wp\', \'wpse27871_404_fakeout\');

SO网友:helenhousandi

由于您在此处删除了之前的问题,可能有人已经向您建议了这个问题,但它不起作用,但您可以尝试:

remove_filter(\'template_redirect\', \'redirect_canonical\');

SO网友:Sanjay Goswami

尝试禁用像Yoast SEO这样的SEO插件。他们通常重定向到最接近的匹配页面,而不是将其扔到404。

结束

相关推荐

Redirect feed to 404 page

当我的访问者访问我页面的任何提要时,我想将他们重定向到我的404。像这样的。我可以在不更改标题URL的情况下执行此操作。function fb_disable_feed() { // set_404(); } add_action(\'do_feed\', \'fb_disable_feed\', 1); add_action(\'do_feed_rdf\', \'fb_disable_feed\', 1); add_action(\'do_fe