PHPを8.1.22に変更したところ、判定がシビアになっています。

PHPを8.1.22に変更したところ、判定がシビアになっています。

フロントページ判定

WordPressのテーマで「home」の場合に適用したいスタイルがあります。その際は

body.home .style_class {}

と指定してやれば良いですね。

ところが一部のプラグイン等でindex.phpを表示に使用するものがあります。すると例えばプラグインによる検索結果にも<body class=”home …..”>が適用されてしまい、意図した表示にならないことがあります。

それを逃げるために

<?php
$request_uri = $_SERVER['REQUEST_URI'];
if($request_uri == "/") {
$front_page = "front_page";
}
?>
<body <?php body_class($front_page); ?>>

とheader.phpに記述していました。ところがphpを8.1.22にアップしたところエラーが発生しました。

要点は2つ。

  • $front_page = “front_page”;のクォーテーション。
  • $front_pageの初期値。

です。

7.4.3では「適当に処理」していてくれたのですが、8.1.22はシビアになりました。

<?php
$request_uri = $_SERVER['REQUEST_URI'];
$front_page = '';
if($request_uri == "/") {
$front_page = 'front_page';
}
?>
<body <?php body_class($front_page); ?>>

初期値を入れ、ダブルクォーテーションをシングルに変更しました。

CSSは以下のように指定します。

body.front_page .style_class {}

存在しないカテゴリー指定

<?php
$event_cat = get_category_by_slug('event');
$event_cat_id = $event_cat->cat_ID;

親テーマを共通で使い回しているので「event」というカテゴリーを未設定のサイトもあります。これまではeventカテゴリーが存在しなくても問題無かったのですが「そんなカテゴリーは無いよ?」というエラーが出るようになってしまいました。

<?php
$event_cat = get_category_by_slug('event');
if($event_cat) {
$event_cat_id = $event_cat->CAT_ID;
......
}

甘い判定に甘えていてはダメですね。

PHP7系は「非推奨」となりましたので、8系への変更は必須です。やはりPHPのアップデートはオオゴトですね。

 

この記事は2024/01/07に公開され2024/01/21に更新、96 views読まれました。

    2024/01/21   技術ノート   

最近1ヶ月で人気の記事

PHPを8.1.22に変更したところ、判定がシビアになっています。 - デザイン事務所ダウンアンダー 東京都練馬区。Wordpressはおまかせ。ホームページ・印刷など販売促進のためのデザインを提案します。

Copyright©デザイン事務所ダウンアンダー, All Rights Reserved.