在更新请求期间修改$\\u REQUEST[\'\\u wp\\u http\\u referer\',使用可用的回调将其重定向到所需的位置。方便的回调是函数update\\u option(/wp includes/option.php)中的过滤器
Why?
WordPress/wp管理/选项。php重定向回向Options API提交表单的插件。
文件:/wp admin/options。php第297行,WordPress 5.0.3
/**
* Redirect back to the settings page that was submitted
*/
$goback = add_query_arg( \'settings-updated\', \'true\', wp_get_referer() );
wp_redirect( $goback );
exit;
wp_get_referer()将调用
wp_get_raw_referer()
function wp_get_raw_referer() {
if ( ! empty( $_REQUEST[\'_wp_http_referer\'] ) ) {
return wp_unslash( $_REQUEST[\'_wp_http_referer\'] );
} else if ( ! empty( $_SERVER[\'HTTP_REFERER\'] ) ) {
return wp_unslash( $_SERVER[\'HTTP_REFERER\'] );
}
return false;
}
How?
代替
wp_safe_redirect( admin_url( \'index.php?page=abc-welcome-page\' ) ); exit;
在您的示例中
add_filter( \'pre_update_option\', \'abc_on_pre_update_set_redirect\', 10, 2 );
并在下面添加功能
function abc_on_pre_update_set_redirect( $value, $option ) {
if ( $option === \'abc_option\' ) {
$_REQUEST[\'_wp_http_referer\'] = admin_url( \'index.php?page=abc-welcome-page\' )
}
return $value;
}