update_blog_option関数がプラグインなどによって動いていると、wp_redirect関数が動かなくなります。
Warning: Cannot modify header information - headers already sent by (output started at /var/www/wp-includes/functions.php:3468) in /var/www/wp-includes/pluggable.php on line 934
というエラーが出ます。
update_blog_option関数は、Depricated(非推奨?)の関数なので、そのエラーメッセージを出すのですが、wp_redirectではheader(location)を使っていて、エラーメッセージが先行してしまう為です。
なので、wp-includes/ms-blogs.phpのなかの、422行目から始まるupdate_blog_option()
の一部をコメントアウトした。
function update_blog_option( $id, $key, $value, $deprecated = null ) { $id = (int) $id; /* if ( null !== $deprecated ) _deprecated_argument( __FUNCTION__, '3.1' ); */ switch_to_blog($id); update_option( $key, $value ); restore_current_blog(); refresh_blog_details( $id ); wp_cache_set( $id . '-' . $key . '-blog_option', $value, 'site-options'); }
コメント