2011-09-11 7 views
1

このエラーが発生しました。私はこれを扱うことは考えていません。ヘッダー情報を変更できません - 既に送信されたヘッダー... Wordpress問題

ヘッダー情報を変更することはできません - ヘッダが既に(出力 が /home/ben213/public_html/wp-content/themes/Bendaggers/functions.php:9で開始) によって送ら内の/ home/ben213/public_htmlのライン上の/wp-includes/pluggable.php 934

私のfunctions.phpファイルの行の#9は、次のとおりです。

<?php if(function_exists('register_sidebar'))register_sidebar();?> 

私のpluggable.php#934は

です。関数wp_redirect($ location、$ status = 302){ グローバル$ is_IIS;

$location = apply_filters('wp_redirect', $location, $status); 
$status = apply_filters('wp_redirect_status', $status, $location); 

if (!$location) // allows the wp_redirect filter to cancel a redirect 
    return false; 

$location = wp_sanitize_redirect($location); 

if (!$is_IIS && php_sapi_name() != 'cgi-fcgi') 
    status_header($status); // This causes problems on IIS and some FastCGI setups 

header("Location: $location", true, $status);} 
endif; 

私はプログラマーではないので、これを理解するのは苦労しています。何が間違っているようですか?親切に私をしてください助けてください...

+0

が重複する可能性 - すでにによって送られたヘッダを.. 。Wordpressの問題](http://stackoverflow.com/questions/7381661/cannot-modify-header-information-headers-already-sent-by-wordpress-issue) – fvu

+0

私に関心のセスありがとうございます "受け入れ格付け "。あなたはとても助けになります! –

+0

@Ben、あなたの前の質問ごとに、あなたを助けてくれた回答にチェックを入れてください。評価の横にある小さい目盛りです。人数、個数、総数。 – KarlP

答えて

1

私はワードプレスについては何も知りませんが、私はhttpについて何かを知っています...多分これは助けることができます。

ヘッダーフィールドを変更しようとするとエラーが発生しますが、ヘッダーは既に送信されています。実際のページの内容が初めて書き込まれたときにヘッダーが(自動的に)送信されます。

(http-headersはhtmlファイルの一部ではなく、html-pagesを送信するhttp-protocolの一部です。ステータスコード(404など)のエンコードなどがヘッダーで送信されます。

...実際のページを書き始めるため、ヘッダが最初に書かれている必要があります。)

それは(テーマのように見えますが?)もすぐに使用されている、または「リダイレクト」プラグインは遅すぎる活性化されること

リダイレクトを行うかどうかを確認するまで "register_sidebar"を移動してみてください。

EDIT:

あなたの他の質問を読んでから、私はあなたがプログラム、または別のツールを使用する方法を学ぶ必要があることを伝えることができます。 1冊または2冊の本を探して、それに時間を捧げます。 PHPはむしろマッシュアップされた言語なので、プログラミング方法を学ぶのには理想的ではありませんが、必要と思われるので、うまくいきます。

幸運。

+0

Karlありがとうございます。私はプログラマーではないと言って悲しいですが、私はHTMLのCSSを少し知っています。正直言って、もしあなたが "リダイレクトをするかどうかをチェックした後まで" register_sidebarを動かそうとすると、pluggable.phpの単一の気がすることを理解していない。 " –

+0

どういうわけか、pluggable.phpが実行されます。そして、どういうわけか、functions.phpがそれの前に実行されます。それが何であるか把握して、サイドバーを登録する行がpluggable.phpの行の後に実行されるように変更してください。 – KarlP

+1

しかし、私はあなたが本当に深海にいると思います。あなたが理解していない多くのコードをコピーして貼り付けたのであれば、それを削除して最初からやり直してみてください。 – KarlP

3

私は、最初の"<?"の前と、最後の"?>"の後に、望ましくない空白のために99.9%の問題が発生します。別のエンコーディングでファイルを保存すると、そのような空白も追加されます(BOMのため)。それでは必ずしもあなたの注意に依存しているわけではありません。 Notepad2などを使用してコードを編集し、管理コンソールでオンラインのテーマエディタを使用するようにしてください。すべてのテーマのPHPファイル内の見つからないすべての空白を見つけて削除し、それらのファイルを再保存してみてください。

+0

これはおそらくそうです。私はPHPについてはわかりませんが、JSPを使うときは、ディレクティブの後に改行しても "数えます" ... – KarlP

+0

これは私にとっての解決策でした。どうもありがとう。私のクラスファイルの1つでは、後に余分な行がありましたか?>、削除され、私は魔術師に戻ります! – kyle

1

私のプラグイン可能です。PHPは機能wp_redirecを見つけて、その中で

echo "<meta http-equiv='refresh' content='0;url=$location' />"; 
+0

それは働いているとチェックされて..... –

1

はここで私のために問題を解決したものだと

header("Location: $location", true, $status); 

を交換してください!それはのように見えるように、おそらく

?> 

<?php 

のように見える「function.php」行9' はスペースを削除:[ヘッダー情報を変更することはできませんの

?> 
<?php