PHP7からPHP8に更新した

タイトルの通り、PHPを7.X(多分)から8.4に更新した。
使用環境はConoha WINGのWordpressイメージ(と言うんだっけ)で、バージョンアップ自体は公式サポートにあるようにぴゃって選択肢変えるだけで行けた。

まあ、バージョンアップ作業がそんな簡単に終わるわけもなく、色々ワーニングとか起きたので一応備忘録。

まろやかWEB拍手

まず、ここでは使ってないのだけど、別サイトで使っているまろやかWEB拍手が原因でサイトが開けない状態になった。
(エラーメッセージに「plugins/maroyaka-webclap-for-wordpress」みたいなのがいくつか出てたので判明したよん。)
解決方法はググればすぐに出てきた、先人の方々ありがとう……。

一応補足しておくと、公式様はPHP8に対応する予定はないようなので、類似機能も紹介。
こちらはむしろPHP8から使用可能なので、こちらを導入するのもありかもしれない。
(私はまろやかWEB拍手を使っているサイトといいねボタンを使っているサイトがあります……統一したほうがいいんだろうな。)

リンクカード

ちょいちょい自分でソースをいじっていたようなので確証は持てないのだが、多分以下を参考に作ったリンクカード機能もワーニングが出てた。
多分私が変にソースをいじってワーニングが出ただけだと思うが一応メモ残し。

Uncaught ValueError

まず、「file_get_contents()」を使っているところでパス指定しなさいワーニング(Uncaught ValueError: Path must not be empty)が出た。
パス指定で使っている変数が空の場合を考慮してないコードになっちゃってたようなので、以下のようにした。


$contents = false;
if ($screenShot) {
    $contents = @file_get_contents($screenShot);
}
if ( $contents == false) {
    // 処理
}

Undefined variable

次に、「$sc_Linkcard」が未定義だよワーニング(Undefined variable)が出た。
「$sc_Linkcard」の変数を宣言する前に「$sc_Linkcard.=’hoge’」みたいに文字列結合しようとしてたので、「$sc_Linkcard=’hoge’」にした。

Attempt to read property

最後に、そんなプロパティはないわよワーニング(Attempt to read property “プロパティ名” on false)が出た。
これは「OpenGraph」だったっけを使用してOGP情報を取得し、OGP情報がなくて空っぽになったものに対して値取得しようとしてワーニングになってた。
titleとdescriptionとimageいずれもOGP情報が空の場合を考慮してないソースになってたので、とりあえず適当に「$graph?->title ?? ”」みたいな感じで対応した。
最近知った「nullセーフ演算子」てやつと「null合体演算子」てやつなのだが、どちゃくそ便利だね……。

締め

めんどくさがり故、かなり応急処置って感じの対応だけど、とりあえず目に付く分は対応できたかなと思う。
もし私が気づいていないものをお見かけしたら、どのような形でもいいので教えていただけるととても助かります……。
明らかにエラー出てね?て見た目しているので、誰が見てもわかると思う……。

投稿してから気づいたけど、トップページから見れる新着記事のページング、バグってね????
緊急性低そうなのでいつか対応します……するのか……?