写真に隠れて見にくいけど、エラーが出ています。気が付かなかった・・・。
本日、フォトポタ日記のタイトル画面を見ていたら、なにやらエラーメッセージらしきものが表示されていることに気が付きました。
何もいじった覚えはないのですが、何が起こっているのじゃ・・・?
タイトル画面の警告メッセージ
タイトル画面のところに出ているメッセージは、以下のようなものでした。
Warning: Use of undefined constant - assumed ' '
(this will throw an Error in a future version of PHP)
in ・・・ header.php on line 52
ぱっと見、何を言ってんだかさっぱり分かりませんが、とりあえず直訳してみると、
警告!
という未定義の定数を使っているから、’ ’として使っといてやったけど、気を付けろよな。次のバージョンのPHPではエラーにするからな!
問題の場所はheader.phpの52行目だからよく見ておけ!
それでもまだよく分からないので、とりあえず、ソースコード(header.php)の該当部分を調べてみました。
50:
51: <div class="alignleft top-title-catchphrase">
52: <?php get_template_part('header-logo'); ?>
53: </div>
54:
問題が起きているのは52行目ですが、ちょうど、「フォトポタ日記2.0」というロゴマークを表示させるだけのコードで、特に何の問題もなさそうんだけど・・・
・・・1時間経過・・・
あ~、分かった!!!
正しいコードはこうなります。
50:
51: <div class="alignleft top-title-catchphrase">
52: <?php get_template_part('header-logo'); ?>
53: </div>
54:
違い、わかります?
52行目の末尾の”?>”の前にある空白が、全角空白→半角空白、だけです(^^;
PHPはプログラミング言語なので、空白は何も意味を持たないのですが、全角空白はそう見てくれないようで、何らかの文字が意味なく書かれているとして、怒られていたようです。
当該の52行目や参照先を1時間も調査して、結局、見つかったのはコレ。
いやはや、見つけにくいのなんのって・・・。
エラーを見て、なんじゃこりゃ?と思われていた方、ご心配おかけしました~m(_ _)m
教訓
冒頭で、「何もやっていないんだけどなぁ」としらばっくれていましたが、思い返せば、数週間前にサーバー上のPHPのバージョンアップをしていたことを思い出しました。(PHP5.6→PHP7.2.1)
別の理由でバージョンアップが必要だったためなのですが、新しいPHPは以前のバージョンに比べてエラーチェックが厳しくなっていて、その結果のエラー(正確には警告。将来的にはエラーに格上げされる模様)でした。
会社の同僚や友人、家族などから「PCの調子が悪いんだよ。何もやってないんだけどねぇ・・・」と相談された際は、十中八九、必ず何かをしでかしています。
「本当に何もやってないの?」と問い詰めていくと、「いや、OSのバージョンアップしただけなんだけど」とか「ハードディスク入れ替えただけ」とか、割とでかいことを白状することが多いです(笑)
PCトラブルの相談を受けた際には、「本当に何もやってないの?」と聞いてから取り掛かりましょう。自戒の念も込めて(^^)
(参考)実はもう1個ありました
先ほどのheader.phpのエラーは自作コードのミスでしたが、フリーでインストールしていたプラグインのコードにもミスがありました(=自分のポカじゃないです)
カテゴリ表示の部分は、もっと重篤そうなエラーが・・・。
しばらく前から、こんなエラーが出ていたと思いますが、こちらも解消しました。
こちらも、PHPのバージョンが上がり、countというモノの数を数える関数には、ちゃんと数えられる変数を与えないとエラーになるようになりました。
同一カテゴリー内の記事数を表示しているのですが、記事数ゼロのカテゴリがいくつかあり、その部分で「数えられねえじゃねえか!」とエラーになっていました。
なので、ちゃんと数えられるかどうかを確認してから数えるようにしました(面倒よねぇ・・・)
【修正前】
133:
134:if (count($posts)==0) {
135: return array(0,'');
136:}
137:
【修正後】
133:
134:if (!is_array($posts) || count($posts)==0) {
135: return array(0,'');
136:}
137:
です。
今のお客様、公式文書は半角カタカナ使用です(金融系)。
さすがに用紙はA4ですが。