我在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,因为我已经在那里尝试了几天没有运气的答案了。
最合适的回答,由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\');