メモ:update_blog_option関数を使っているとwp_redirect関数が動かなくなって固まっちゃうのを無理やり直した

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');
}

↓ プラグインを作る方々への本、書きました。 ↓

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です