我有大量的帖子,每个帖子都代表一种非常特定的数据类型。每个帖子标题都是数据的SKU;信息人们已经非常熟悉URL结构,他们的快捷方式(重定向)导致他们获取不正确的数据。在这种情况下,使用错误的数据不是一件好事。
For example, if my actual slug is example.com/esm/010HHHH
<示例。com/010HHHH重定向到示例。com/esm/010HHHH(良好)示例。com/010可以重定向到以010开头的任何项目,例如。com/esm/010AAAA(不太好)首选的行为是,只需为任何帖子获取404错误,而这对于任何有少量/esm的帖子来说都不准确。
通过删除规范过滤器,我成功地解决了这个问题。然而,我希望其他鼻涕虫的“正常”规范行为。
remove_filter(\'template_redirect\', \'redirect_canonical\');
最合适的回答,由SO网友:Eddie 整理而成
这似乎奏效了。如果WP想要重定向到的URL中有“esm”,它只会返回404。如果没有,它就可以继续它快乐的小径。
add_filter( \'redirect_canonical\',\'custom_disable_redirect_canonical\' );
function custom_disable_redirect_canonical( $redirect_url, $requested_url ) {
if ( preg_match("/esm/",$redirect_url) ) {
return FALSE;
} else {
return $redirect_url;
}
}