エラーメッセージ 👇
Warning: Cannot modify header information – headers already sent by (output started at /home/??????/www/index.html:1) in /home/??????/www/blog/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 1415
インターネットで調べたところこのエラーの原因は「HTTP ヘッダーを変更する関数(後述)の呼び出しより前に、すでに何かがアウトプットされているために発生」するようです。記事をもとに問題の解決方法を複数試してみましたがhtml上でのエラーが解決されませんでした。ネットで見つかった解決方法ではエラーを解決できませんでした。
では、どうやって解決できたのか?
上記のエラーを見たところスーパーキャッシュ(wp-content/plugins/wp-super-cache/)が原因で表示されていることがわかります。そこで、エラーが表示されているページでスーパーキャッシュ(wp-super-cache)を無効にできたらエラーが解決されると思い、その方向で再度インターネットで検索しましたが解決方法は見つかりませんでした。
そこで、ワードプレスの設定ファイル「wp-config.php」を開いてみたところ、スーパーキャッシュの設定二行を発見しました。
define('WP_CACHE', true);
define( 'WPCACHEHOME', '/home/??????/www/blog/wp-content/plugins/wp-super-cache/' );
そこで閃きました!define('WP_CACHE', true);を「false」にしてindex.htmlに挿入したコードに追加したら解決するのでは?を思いました。
index.htmlに挿入したコードは以下のようになりました。
<?php
define('WP_CACHE', false); // <-- 追加した行
define('WP_USE_THEMES', false);
require($_SERVER['DOCUMENT_ROOT'] . "blog/wp-load.php");
?>
<?php
//ループ - 最新の記事5件を表示します。
$query1 = new WP_Query('showposts=5');
if ($query1->have_posts()) :
while ($query1->have_posts()) : $query1->the_post();
?>
<div class="class-name">
<h2>
<!--The Title-->
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark">
<?php the_title(); ?>
</a>
</h2>
<!--thumbnail-->
<a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail(''); ?>
</a>
<!--Excerpt-->
<p>
<?php the_excerpt(); ?>
</p>
</div>
<?php
//loop ends
endwhile; endif; 3ss7cp_reset_postdata();
?>
上記のように以下の行を追加したらエラーば無事解決されました。
define('WP_CACHE', false); // <-- 追加した行
エラーが消えない場合や上記と異なるエラーが表示されている場合はお気軽にコメント欄にご投稿ください。
追伸 👇
この記事で解決したエラー(Warning: Cannot modify header information…)は重大なエラーではないようでDebugが有効になっていない場合、通常表示されないようです。
従って、「wp-config.php」で define(‘WP_DEBUG’, true); を以下のように false に変更したらエラーが表示されないですが、エラーは解決されていないため上記で案内した方法で解決される方が良いと思われます。
define('WP_DEBUG', false);
しかし、htmlの方のPageSpeed Insightsの数値が以上に悪くなる場合はDebugをfalseにして、本記事で追加した行を削除した方が良いと思います。
従って、「wp-config.php」で define(‘WP_DEBUG’, true); を false にして、.htmlファイルから以下の行を削除します。
define('WP_CACHE', false); // <-- 追加した行