ブログ運営

【WordPress/JIN】Undefined variable $str が出た原因は「空カテゴリ」でした

先日、きょうにぃブログの一部ページで以下のWarningが表示されました。

Warning: Undefined variable $str in /home/xxxxx/wp-content/themes/jin/ogp.php on line 108

本番環境でWarningが表示されるのは避けたいところです。

同様の事象で困る方がいるかもしれないので、
原因と実際の解決方法を共有します。

発生状況

  • WordPressテーマ:JIN
  • 特定のカテゴリページで発生
  • そのカテゴリ内に記事が1件も存在しない状態

原因

結論から言うと、

カテゴリの中に記事が1件も無い状態で公開していたこと

が原因でした。

空のカテゴリページを表示した際に、
OGP生成処理(ogp.php)内で参照される変数がセットされず、
$str が未定義のまま処理されていたようです。

つまり、

「カテゴリは存在するが中身が空」

という状態がトリガーになっていました。

実際に行った対処法(簡単)

テーマファイルは触っていません。
行ったことはシンプルです。

✔ そのカテゴリ内に「準備中」の記事を1件投稿

内容は短くてOK。

例:

本カテゴリは現在準備中です。
公開までしばらくお待ちください。

これを1記事追加しただけで、
Warningは解消しました。

なぜこれで直るのか?

カテゴリに記事が1件でも存在すると、

  • OGP生成処理で参照する値が取得できる
  • 変数が正しくセットされる

結果としてUndefined variableが発生しなくなります。

同じエラーが出たら確認すること

同じエラーが出たら確認することは、

  1. 該当カテゴリに記事は入っているか?
  2. 下書きではなく「公開」状態になっているか?
  3. 表示対象ページは本当に空ではないか?

テーマ改修の前に、
まず「空カテゴリ」を疑うとよいかもしれません。

学び

本件の学びとしては、

・空カテゴリは意外と盲点
・本番環境でWarningは信頼性を下げる
・まずは構成を疑う

今回はコード修正ではなく、
運用面の修正で解決しました。

まとめ

今回のWarningの原因は、

「空のカテゴリを公開していたこと」

でした。
同じ現象で困っている方の参考になれば幸いです。
ではまた!!

ABOUT ME
きょうにぃ@SIerリーマン
20代後半/理系大学院出身/IT系サラリーマン/クラウド系インフラエンジニア/(たま~に)雑談配信 -自己紹介- 学生時代に教育分野に興味を持ち、教員免許を取得するも一般社会を知らない人間が教壇には立てないとひねくれていた結果、気づけば大手企業のSEとして日々修行中、、、 浅く広い知識量、人当たりの良さ、面倒見の良さ、たまに見せるハッタリが持ち味。 -経歴- 2020年 某理系大学院卒 2020年~現職(大手SIer勤務) 2021年~ゲーム配信活動開始@twitch 2023年~きょうにぃブログ開設 -経歴- 2020年 某理系大学院卒 2020年~現職(大手SIer勤務) 2021年~ゲーム配信活動開始@twitch 2023年~きょうにぃブログ開設 -保有資格- 中高教員免許(数学) IPA基本情報技術者 AWS資格 CLP,SAA,SOA,DVA,SAP Azure資格 AZ-900,AZ-104 ※技術力よりコミュニケーション力が武器です。