XREA PHP バージョンアップ履歴 ワードプレスが更新を推奨 (エラー修正方法)

Categories | ブログ(WordPress) SEO

XREA PHP バージョンアップ履歴 ワードプレスが更新を推奨

バージョンアップでエラーが発生した時の修正方法

2025.08.05 (php7.4 → php8.3)※現在使用不可

284ed1d84762b889c2090963792560d4 400x339 XREA PHP バージョンアップ履歴 ワードプレスが更新を推奨 (エラー修正方法)

※php8.3にバージョンアップすると、当ブログでは不具合が生じ表示されなくなる。
php8.0でも試してみたが、やはりエラー表示。
当ブログは213年5月21日に公開した自作テーマ。メンテの必要がないようにシンプルるに制作。

 

エラーチェック備忘録

先ずはPHPの互換性をチェックするプラグイン「PHP Compatibility Checker」で
原因究明してみる。プラグインが出しているエラーを「テーマ側が画面に表示している」だけの可能があるので。

WordPress 実装中プラグイン

 

1. Realtime Calendar

随分前にインストールしたプラグイン。

2025 0808 XREA PHP バージョンアップ履歴 ワードプレスが更新を推奨 (エラー修正方法)

PHP8には非対応なので削除。

 

2. XML Sitemap Generator for Google 4.1.21

2025 08 08 01 XREA PHP バージョンアップ履歴 ワードプレスが更新を推奨 (エラー修正方法)

サイトマップを自動生成してくれるプラグイン。

2023年くらいから不具合が続き、サイトマップを自動生成しなくなったよう。

2025年8月に削除。

代替えとしてAIOSEOのサイトマップを使ってみた。

しかし、パーマリンクが?p=123形式だとサイトマップ機能が使えないことが判明。

困った。やはりパーマリンクを変更するべきか・・・取りあえず放置する。

※ パーマリンクが?p=123形式だとSEOに悪影響だそう。

 

3. PuSHPress 古いプラグインだったので削除。

詳細を確認すると対応する最新バージョン: 5.9.11

 

結果、php8によろしくない(非対応?)プラグイン3つを削除しました。

 

プラグインをいじってみたが、一番の原因は大昔に作ったテーマと判明。

テーマなどのエラーを見つけて書き出す方法は、「DEBUG_LOG」を使う。

wp-config.php に下記を記述。

* この値を true にすると、開発中に注意 (notice) を表示します。
* テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。

この1行を → define(‘WP_DEBUG’, false);
※falseはデバッグモードを無効にするという意味ね。

  ↓ ↓  3行に変更する。

define(‘WP_DEBUG’, true);
define(‘WP_DEBUG_LOG’, true);
define(‘WP_DEBUG_DISPLAY’, false);

※define(‘WP_DEBUG’, false);の記述がない場合は3行だけを記述。

その後ブログを表示させると「debug.log」が生成され、それにエラーが書き出される。

デバックファイルの場所 /wp-content/debug.log

 

エラー01. /themes/blog/functions.php
PHP Deprecated: 関数 add_custom_image_header は、バージョン 3.4.0 から非推奨になりました ! 代わりに add_theme_support( ‘custom-header’, $args ) を使用してください・・・

エアラー01. 修正方法
関数 add_custom_image_header は  /themes/blog/functions.php
にこう記述されていた。

add_custom_image_header('','admin_header_style');

 ↓ 新しい構文に変更

add_theme_support('custom-header', array(
'admin-head-callback' => 'admin_header_style',
));

 

エラー02. /themes/blog/functions.php
PHP Notice: 関数 register_sidebar が誤って呼び出されました。「サイドバー 1」サイドバーの引数の配列で id が設定されませんでした。既定では「sidebar-1」です。id に「sidebar-1」を設定することでこの情報を消して、既存のサイドバーのコンテンツを保つことができます。register_sidebar()に id を渡していないために出ている Notice です。

修正前

//ウィジェット
register_sidebar();

 

修正後

// ウィジェット
register_sidebar(array(
'name' => 'サイドバー 1',
'id' => 'sidebar-1',
'before_widget' => '<li id="%1$s" class="widget %2$s">', // ← li で囲む
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">', // ← 元のCSSに合わせて h2
'after_title' => '</h2>',
));

※ 当ブログの sidebar.php を見ると仕組みは
<div id=”sidebar”> の中で <ul> を置き、その中に <?php dynamic_sidebar(); ?> を出力している。つまり register_sidebar() の before_widget / after_widget は <li> タグにしておく必要がある。そうしないと <ul> の中に <div> が入ってしまって、レイアウトやスタイルが崩れる原因になります。

 

エラー03. /themes/blog/comments.php
PHP Deprecated: ファイル comments.php のないテーマ は、バージョン 3.0.0 から非推奨になり、代替手段がなくなりました。 comments.php テンプレートをテーマに含めてください・・・

何故か comments.phpが存在しない。でも記事内にはコメント機能が問題なく作動している。昔に自作したテーマだからどう構築したか記憶にない。取りあえずダミーのcomments.phpを作成してエラーを回避しました。
ファイルの中身はこんな感じです。

<?php
/**
* comments.php
* WordPress コメントテンプレート
*/

if ( post_password_required() ) {
return;
}
?>

<div id="comments" class="comments-area">

<?php if ( have_comments() ) : ?>
<h2 class="comments-title">
<?php
printf(
_nx( 'One Comment', '%1$s Comments', get_comments_number(), 'comments title', 'textdomain' ),
number_format_i18n( get_comments_number() )
);
?>
</h2>

<ol class="comment-list">
<?php
wp_list_comments( array(
'style' => 'ol',
'short_ping' => true,
) );
?>
</ol>

<?php the_comments_navigation(); ?>

<?php endif; ?>

<?php
// コメントが閉じている場合のメッセージ
if ( ! comments_open() && get_comments_number() ) :
?>
<p class="no-comments"><?php esc_html_e( 'Comments are closed.', 'textdomain' ); ?></p>
<?php endif; ?>

<?php comment_form(); ?>

</div>

 

まとめ
警告だけ消したいなら「ダミー」でもよかった。でもコメント欄も必要なら、この 標準の comments.php を置けば両方解決でた。

 

エラー04.

PHP Notice: Undefined variable: counter in /blog/wp-content/themes/blog/home.php on line 9
変数 $counter が 定義される前に使われていることを示している。
home.php の 9行目 で $counter を利用しているが、その前に初期化していないためエラーが発生しています。

修正前

<?php if(have_posts()): while(have_posts()): the_post(); $counter++; ?>

 

修正後

<?php if (have_posts()): $counter = 0; while (have_posts()): the_post(); $counter++; ?>

 

まとめ
関数 $counter は、単にループ内で「何件目の記事か」を数えるためだけの変数です。ループ前に初期化しろというエラーでした。記事の URL(パーマリンク)、ID、スラッグなど WordPress のデータには一切影響しません。ループ内で $counter++ して条件分岐しているだけなので、表示内容のレイアウトや「先頭記事だけ大きく表示する」などの見た目にしか関係しません。初期化しても 1 件目から数え直すだけなので、リンクやSEO、データベースの情報には全く影響ありません。

 

debug.log でのエラーは4つ。これらを修正しエラーはなくなりました。

しかし、php8にバージョンアップしてみると、やはり何も表示されなくなります。

さぁ、どうする? 

色々と模索していたらphp互換性をチェックするプラグイン

PHP Compatibility Checker

は2021年ころから提供が終了しているらしい。

良かれとphp互換チェックに真っ先に導入したプラグインだったが。

代替えとしてPHP互換性を簡易チェックできるスクリプトを自作↓。

PHP Compatibility Checker 2022年にサポート修了。代替えは自作プラグイン?

 


 

2022.08.17. (php7.3→php7.4)

0917 400x249 XREA PHP バージョンアップ履歴 ワードプレスが更新を推奨 (エラー修正方法)


 

2019.04.04. (php7.2→php7.3)

レンタルサーバーから、XREAにおいてPHPの最新バージョン7.3に対応したと

アナウンスがありました。

PHP7.3対応は2019年4月1日(月)より。

 

◆ PHPの設定変更方法
新サーバーコントロールパネルの左メニュー「サイト設定」で
「サイト設定の変更」「PHP」を “php73” に選択します。
「サイト設定を変更する」ボタンを押します。
約5~10分程度で反映されます。

 

0404 01 400x316 XREA PHP バージョンアップ履歴 ワードプレスが更新を推奨 (エラー修正方法)

↓ ↓

0404 02 400x142 XREA PHP バージョンアップ履歴 ワードプレスが更新を推奨 (エラー修正方法)

 

気になるところはインストールしたプラグイン。

最新版であれば問題なさそうだが、

いちお不具合がないか?反映後(10分程度)確認する。

問題なし。

 

XREA PHP バージョンを5.3から7.2に更新

 

XREAサーバーの PHPが 5.3から 7.0にバージョンアップ ワードプレス(ブログ)に不具合発生

 

Comment(0) | Trackback(0)

TAGS: / / / | 2025年8月5日 |

« »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です