为301重定向设置缓存控制标头

时间:2018-03-19 作者:tw8sw8dw8

我需要设置缓存控制:无缓存,无存储,必须仅为301重定向重新验证,函数为:

function cache_control_handle_redirects() {

    if ( $status == 301          ||          $status == 308 ) {



     header ( "Cache-Control: no-cache, no-store, must-revalidate" );


}

}
add_filter( \'wp_redirect_status\', \'cache_control_handle_redirects\', 10, 2 );
wp\\u redirect\\u status是否也可以处理缓存控制标头?

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

你的第一个问题是$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() 函数合并此功能,不管怎样,它都应该工作。

结束

相关推荐

使用PHP快捷码和Java脚本从自定义插件设置中提取数据

我正在构建一个自定义插件,它只是一个基本的事件倒计时计时器。您可以输入倒计时的日期和时间,然后将快捷码粘贴到网站的页面中,以显示距事件发生的天数、小时、分钟和秒数。我使用PHP生成表单,使用JavaScript从表单中提取数据并将其呈现到页面。我在“设置”中设置了一个“预览”部分,以确保倒计时正确、数据持续等。它工作得很好(请参见屏幕截图#1)!然而,当我在外部页面上使用我的短代码[mbc\\U countdown\\U clock]时,它不会将事件日期数据拉入短代码生成的div中。我已经通过在divs中