PAGE TOP


リダイレクトに関して 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)はつかわないで、こっちを使ったほうがよいかもしれないです。