リダイレクトに関して wp_safe_redirect()
2016年12月9日Wordpress
WordPressのBuddyPressをカスタマイズしていますが、プラグインに投稿機能をつけて、投稿後はリダイレクトをしようとするものの、header(“Location: “.$url)でリダイレクトしている為 Warning: Cannot modify header information – headers already sent by …の警告がでてしまいました。警告の通り既に、ヘッダーは送信されており、header(“Location: “.$url)がボディーに書いている為に起こる警告でした。この警告自体回避するには、
<?php ob_start() ?>
をよりも上に配置すればよいだけなのですが、Wordpressということなので、汎用性を持たせるために、カスタマイズ用に別途作ったプラグインに書きました。
//functions view website.php function adds_head() { ob_start(); } add_action('after_setup_theme', 'adds_head');
とりあえず、after_setup_themeで実行しましたが、initなど他のものでもOK。
あと、知らなかったのですが、Wordpressでは、安全にリダイレクトすることのできるwp_safe_redirect($url )関数があるので、header(“Location: “.$url)はつかわないで、こっちを使ったほうがよいかもしれないです。