本ページはプロモーションが含まれています

もう怖くない!!たったこれだけの設定で「class-wp-translation-file-mo.php on line 161」エラーを解決【簡単解説】

solution-class-wp-translation-file-mo-php-on-line-161-eye-catch WordPress
スポンサーリンク
スポンサーリンク

WordPress 6.5.x へのアップデート後、図のようなエラーが表示されて困った方が多いのではないでしょうか?

wp-161-error-fear

このエラーが出た瞬間、

「今までの記事全部◯んだ」と、

震え上がりました…。

でも安心してください。

エラーメッセージ内の「class-wp-translation-file-mo.php」は、サイトの表示に直接関わるファイルでないため、ユーザーがサイトを利用するときに問題が生じることはほとんどありません。

「class-wp-translation-file-mo.php」とは?

翻訳ファイル「.mo」を読み込み、WordPress管理画面やプラグインのメニューなどを翻訳してくれるファイル。

ただし、エラーログが縦長に表示されるため、WordPress管理画面のボタンやメニューが見えにくくなり、操作性が大幅に低下します。

本記事では、このエラー内容と対策方法について詳しく解説していきます。

WordPressのアップデートで6.5.xにアップデートしたいのに出来なかった方は、ぜひご一読してください。

このページでわかること
  • 「class-wp-translation-file-mo.php on line 161」について
  • エラーメッセージの2つの解決手順
    ① レンタルサーバー専用のファイルマネージャーを使用する方法
    ② FTPクライアントソフトを使用する方法
スポンサーリンク

エラーの詳細について

エラーメッセージについて、細かくして分析していきたいと思います。

  • PHP Warning:Undefined array key 1
    翻訳すると、『PHPのエラー:未定義の配列キー「1」があります』
    未定義 = 用意した変数や配列の中身が入っていない状態。
  • in /home/ ~ class-wp-translation-file-mo.php
    エラーが発生したファイルの格納場所。
  • on line 161
    エラーが発生したコードの行番号。

分析結果をまとめると、

「in /home/ ~ class-wp-translation-file-mo.php」ファイルの161行目に未定義の配列キーがあります。

となります。

ファイル名「.php」のとおり、コードは「PHP言語」で書かれています。

PHP言語(Hypertext Preprocessor)とは?

オープンソースプログラム言語で、動的なWebページを作成するための機能を多く備えているおり、全世界のサイトで7割以上の使用率を誇る。

正式名称を省略してもPHPにならない理由は、PHP言語初期のツール名前が「Personal Home Page Tools」だったため、その名残。

参照元|W3Techs「ウェブサイトのプログラミング言語の使用統計(年間)
PHP公式ホームページ「PHPの歴史」「PHPにできることは?

結果通り、ファイルの161行目を見てみると以下のコードが記されていました。

変数「$name」「$value」「$meta_line」が未定義であることが、エラーの原因として考えられます。

ネット上で「Undefined array key ~ 」を調査したところ、以下のことがわかりました。

「Undefined array key ~ 」の調査結果
  • PHP 8.0以降のバージョンでは、コードのエラーチェックが厳格化されたため、以前では警告されなかったエラーが表示されるようになった。
  • isset関数を使用すると、エラーを回避できる。
    issetは、事前に変数や配列内にキーが存在を確認してくれる関数。

IRODORI DESIGN」さんのサイトを参考にさせて頂きました。ありがとうございます。

エラーメッセージの修正方法が判明したので、実際に「isset関数」を使って、PHPファイルを修正する方法を解説していきたいと思います。

スポンサーリンク

PHPファイルのコードを修正する

万が一に備えて、設定する前に必ずバックアップを取るようにお願いします。バックアップ方法は以下の記事に詳細をまとめておりますので、ご一読をお願いします。

本記事では、レンタルサーバー「Conoha」、WordPressテーマ「Cocoon」を例に説明しております。別のレンタルサーバーやテーマをご使用の方は、少し操作方法が異なります。

今回、PHPファイルの編集方法は2通りありますので、具体的な手順を解説します。
※どちらの方法でも結果は変わらないため、やりやすい方で問題ございませんが、迷った場合はファイルマネージャーが直感的でわかりやすいためオススメです。

① レンタルサーバーのファイルマネージャーでコードを修正する方法

  • 1
  • 2
    登録情報を入力して、ログインする
  • 3
    ファイルマネージャーを起動する
  • 4
    エラーメッセージの「in /home/ ~ class-wp-translation-file-mo.php」に移動する

    「pubulic_html」→「サイトのアドレス」→「wp-includes」→「l10n」に移動してください。


  • 5
    バックアップ用の新規フォルダを作成する

    編集するPHPファイルをバックアップするためのフォルダを作成します。

    プラグインを使用したバックアップと異なり、今回はPHPファイルの小さな問題が発生した場合に備えたもので、復元が迅速に行えます。

    例ではフォルダ名を「old」としています。

  • 6
    作成したフォルダに、PHPファイルをコピーする

    図の手順に従って、「class-wp-translation-file-mo.php」をコピーしてください。

    作成したバックアップフォルダをダブルクリックしてください。

    右クリックメニューからファイルを貼り付けてください。

    ファイルのバックアップはこれで完了です。

    バックアップファイルを復元する方法

    もし、PHPファイルを編集したことが原因で不具合が発生した場合は、以下の方法で復元してください。

    • 1
      先ほどバックアップしたPHPファイルをコピーする
    • 2
      「l10n」フォルダにPHPファイルをペーストする

      復元する方法は以上となります。

  • 7
    class-wp-translation-file-mo.php」を編集する

    「l10n」フォルダに戻り、PHPファイルをエディタで開いてください。

    図のように、コードを追加してください。

    コピー用として、コードを以下に置いておきます。
    下のコード1・6行目をコピーして貼り付けてください。

    if( isset($name, $value, $meta_line) ) {
    
    	list( $name, $value ) = array_map( 'trim', explode( ':', $meta_line, 2 ) );
    	$this->headers[ strtolower( $name ) ] = $value;					
    
    }

    if( isset($name, $value, $meta_line) )とは?

    変数「$name, $value, $meta_line」に値が入っている場合に、「list~」のコードを実行するという意味。

    保存して閉じるをクリックしてください。

  • 8
    WordPressの管理画面で、エラーメッセージが解消しているか確認する

    ファイルマネージャーでのコード修正は以上となります。

② FTPクライアントソフトでコードを修正する方法

FTPクライアントソフトを使用すると、レンタルサーバーにログインする必要がなくなり、大変便利になります。ただし、事前にソフトのインストールや設定が必要です。

FTPクライアントソフトの解説やインストール方法については、以下の記事に詳しくまとめておりますので、ぜひご参考にしてください。

  • 1
    FileZillaを起動する

    アイコンをダブルクリックして起動してください。

  • 2
    設定したSFTP or FTPサーバーに接続する

    左上の下矢印をクリックしてください。

    設定済みの名前が表示されるため、クリックしてください。

    Filezillaは以下のレイアウトになっています。

    これを覚えておくと、この後の説明が頭に入りやすくなると思います。

  • 3
    右側のサーバー側ウィンドウで、エラーメッセージの「in /home/ ~ class-wp-translation-file-mo.php」に移動する

    サーバー側で「pubulic_html」→「サイトのアドレス」→「wp-includes」→「l10n」の順に移動してください



  • 4
    「class-wp-translation-file-mo.php」をパソコンにダウンロードする

    パソコン側のダウンロード先を選択後、サーバー側の「class-wp-translation-file-mo.php」を右クリックしてからダウンロードしてください。
    ※本記事では、ダウンロード先として「デスクトップ」を例に解説しています。

  • 5
    バックアップ用として、PHPファイルをコピーする

    編集するPHPファイルをバックアップするためのフォルダを作成します。
    ※例ではフォルダ名を「old」としています。

    プラグインを使用したバックアップと異なり、今回はPHPファイルの小さな問題が発生した場合に備えたもので、復元が迅速に行えます。

    作成したフォルダに、PHPファイルをコピーしてください。

  • 6
    ダウンロードした「class-wp-translation-file-mo.php」をメモ帳で編集する

    ダウンロードしたPHPファイルをメモ帳で開いてください。

    図のように161行目にコードを貼り付けて編集してください。

    コピー用として、コードを以下に置いておきます。
    下のコード1・6行目をコピーして貼り付けてください。

    if( isset($name, $value, $meta_line) ) {
    
    	list( $name, $value ) = array_map( 'trim', explode( ':', $meta_line, 2 ) );
    	$this->headers[ strtolower( $name ) ] = $value;					
    
    }

    メモ帳を閉じるときに警告がでるので、保存をクリックしてください。

  • 7
    「l10n」フォルダに「class-wp-translation-file-mo.php」をアップロードする

    図の順番にクリックし、アップロードしていきます。

    以下の警告が表示されるので、そのままOKをクリックしてください。

    バックアップファイルを復元する方法

    もし、PHPファイルを編集したことが原因で不具合が発生した場合は、先ほどバックアップしたファイルをアップロードしてください。

  • 8
    WordPressの管理画面で、エラーメッセージが解消しているか確認する

    FTPクライアントソフトでのコード修正は以上となります。

スポンサーリンク

まとめ

ここまで読んで頂き、ありがとうございます。

いかがでしたでしょうか。

本記事によって、皆さんにビビらずWordPressのアップデートをして頂ければ幸いです。

不明な点がございましたら、気軽にお問合せフォームよりご連絡をお願いします。できる限りサポートさせて頂きます。

それではまた会いましょう!

コメント

タイトルとURLをコピーしました