你的第一个问题是$status
不是从任何地方来的。在过滤器中,您需要接受回调函数中的参数。如果接受的参数数大于1,则还需要将该数字指定为add_filter()
.
您还需要返回该值或修改后的值。在这种情况下,如果不这样做,则将从所有重定向中删除状态代码。
更正这些问题后,您的代码将如下所示:
function cache_control_handle_redirects( $status, $location ) {
if ( $status == 301 || $status == 308 ) {
header ( "Cache-Control: no-cache, no-store, must-revalidate" );
}
return $status;
}
add_filter( \'wp_redirect_status\', \'cache_control_handle_redirects\', 10, 2 );
那应该是你想要的。
这有一个概念上的问题,过滤器可能只用于修改值,而不用于执行这样的操作。也就是说,除了plugging 这个wp_redirect()
函数合并此功能,不管怎样,它都应该工作。