WordPressのテーマを更新した時に起きた不具合の原因・試み・解決方法

2019年8月14日ブログ

パソコン初心者

使用しているWordpressのテーマを更新したら、ブログと互換性が悪く不具合が生じてしまいました。最終的な対処法と解決するために試したことを書きたいと思います。

初心者のため、毎度のごとく原因が分からず直すのにも時間がかかってしまいました。

 

使用環境
テーマ:Luxeritas(バージョン 3.5.11 → 3.6.7)
サーバー:エックスサーバー

 

〈不具合の状況〉

・作成中の記事を下書き保存すると、ずっと保存中の状態で保存が終わらない

・新規追加をしようとすると次のエラー文が表示される

Fatal error: Uncaught ArgumentCountError: Too few arguments to function {closure}(), 2 passed in /home /     /hikikomorineet.com /public_html /wp-includes /class-wp-hook.php on line 286 and exactly 3 expected in /home /     /hikikomorineet.com /public_html /wp-content /themes /luxeritas /inc /admin-comments.php:46 Stack trace: #0 /home /     /hikikomorineet.com /public_html /wp-includes /class-wp-hook.php(286): {closure}('\xE5 \x81 \x89 \xE3 \x81 \x9D \xE3 \x81 \x86 \xE3 \x81 \xAB \xE6 \x9B \xB8…’, Object(WP_Comment)) #1 /home /     /hikikomorineet.com /public_html /wp-includes /plugin.php(208): WP_Hook->apply_filters('\xE5 \x81 \x89 \xE3 \x81 \x9D \xE3 \x81 \x86 \xE3 \x81 \xAB \xE6 \x9B \xB8…’, Array) #2 /home /     /hikikomorineet.com /public_html /wp-content /plugins /crayon-syntax-highlighter /crayon_wp.class.php(1102): apply_filters('get_comment_tex…’, '\xE5 \x81 \x89 \xE3 \x81 \x9D \xE3 \x81 \x86 \xE3 \x81 \xAB \xE6 \x9B \xB8…’, Object(WP_Comment)) #3 /home /     /hikikomorineet.com /public_html /wp-content /plugins /crayon-syntax-highlighter /crayon_wp.class.php(1075 in /home /     /hikikomorineet.com /public_html /wp-content /themes /luxeritas /inc /admin-comments.php on line 46
サイトで技術的な問題が発生しています。サイト管理者のメールを確認して指示に従ってください。

 

解決した方法から書くべきかと思いますが、他に試したことも時系列順に書いていきます。

 

直接解決しなかったけど試したこと

プラグイン Autoptimizeの停止

AutoptimizeはHTML、CSS、Javascriptを圧縮してくれるプラグインです。

このプラグインはLuxeritasでの使用はオススメされていません。

詳しくはLuxeritas作成者 様が書いた以下の記事を参照してください。Autoptimize以外のオススメしないプラグイン、オススメしているプラグインについても書いてあります。

お勧めのプラグインとお勧めしないプラグイン | Luxeritas Theme

 

どうやら、Luxeritasの前に別のWordPressテーマを使っていた時にインストールしていたプラグインが残っていたみたいです。テーマを変更した際に確認していたつもりでしたが、できていなかったようです。

 

プラグイン WordPress Ping Optimizerのエラーの修正

WordPress Ping OptimizerはWordPressが送信するpingを制御するプラグインです。

WordPress Ping Optimizerを有効化すると、ブログのヘッダーの上に次の警告文が表示されていました。

Warning: count(): Parameter must be an array or an object that implements Countable in /home /     /hikikomorineet.com /public_html /wp-content /plugins /wordpress-ping-optimizer /cbnet-ping-optimizer.php on line 533

そのため、PHPのバージョンをエックスサーバーで推奨されているPHP7.2.17ではなく、1つ下のバージョンのPHP7.1.28に設定していました。(PHP7.1.28だと上記の警告文は消える)

 

PHPのバージョンの確認・変更方法(エックスサーバーの場合)

エックスサーバー の「ログイン」→「サーバーパネル」で「サーバーID」と「サーバーパネルパスワード」を入力→「ログイン」をクリックしてログインします。

「サーバーパネル」→PHPの「PHP Ver.切替」→該当のドメイン名の「選択する」をクリックすると、現在のバージョンの欄で現在使用しているPHPのバージョンが確認できます。

PHPのバージョンを変更する時は、変更後のバージョンバージョンを選択→「変更」をクリック で変更できます。

 

警告文が消えるのはいいんですが、やはり推奨されているPHPのバージョンを使用した方が良いと思いました。

PHPを推奨のバージョンに設定しつつ、WordPress Ping Optimizerを使用する方法は無いかと検索していたところ、プラグインファイルを直接編集する方法がありました。

この方法でPHPを推奨のバージョンに設定して、WordPress Ping Optimizerを使用することができました。

 

プラグインファイルを直接編集する方法

WordPressにログインしてメニューの「プラグイン」→「インストール済みプラグイン」→WordPress Ping Optimizerを停止

次に、

プラグインエディター」→右上の「編集するプラグインを選択」でWordPress Ping Optimizerを選ぶ→「選択」をクリック

これでWordPress Ping Optimizerのプラグインファイルを直接編集することができます。

編集の仕方について詳しくは参考にしたこちらのサイトをどうぞ

突然ブログの画面上部にWarning: count()~と表示されたときの解決法 | POCHIRI.net

 

※ただし、これは現在の最新バージョン(2.35.1.1.0)の1つ前のバージョンの話です

現在(2019/8/14)はWordPress Ping Optimizerは更新され、PHPのバージョンが7.2.17でも最初から警告文が表示されないで問題なく使えると思います。(おそらく)

 

スポンサーリンク

 

.htaccessに追記して高速化設定

.htaccessとは
.htaccess(エイチティーアクセス)とは、Webサーバーの挙動を決定する設定ファイルです。
ディレクトリ単位で、アクセス制限やユーザー認証などを設定することができます。

.htaccess編集 | レンタルサーバー【エックスサーバー】

サーバーの.htaccessファイルを編集してLuxeritasをより高速にします。

 

.htaccessを編集する方法(エックスサーバーの場合)

エックスサーバー の「ログイン」→「サーバーパネル」で「サーバーID」と「サーバーパネルパスワード」を入力→「ログイン」をクリックしてログインします。

サーバーパネルホームページの「.htaccess編集」→該当のドメイン名の「選択する」→「.htaccess編集」タブ→「.htaccess」に記入→記入後「確認画面へ進む」→「実行する」をクリックで.htaccessが編集できます。

↓こちらのページを参考にしてください

.htaccess編集 | レンタルサーバー【エックスサーバー】

 

高速化させるために記入する内容は、ダウンロードしたLuxeritasファイル内の「htaccess.txt」ファイル、

もしくは、WordPressにログインしてメニューの「Luxeritas」→「高速化一括設定」→「高速化用 htaccess」タブに書いてあります。

「.htaccess に以下の記述を “追記" してください(上書きは不可)」から下の内容を全てコピーして、サーバーの.htaccessに貼り付けます。

.htaccessを全く編集したことが無くても既に数行記述されていると思います。既に記述されている内容は消さずにその下に追記します。

 

私は以前使用していたWordPressテーマの高速化設定が残っていました…

以前使用していたテーマの高速化設定を削除して、Luxeritasの高速化設定を記入しました。

 

テーマの更新の仕方を変える

いつもとは違う方法でテーマを更新してみました。結果から書くと、テーマに問題があるわけではなかったので、仕上がりは同じでした。

ですが、いつもとは違うテーマの更新の仕方について簡単に書いておこうと思います。

 

Luxeritasはテーマの更新方法が2つあります。

参照サイト:Luxeritas テーマのアップデート方法 | Luxeritas Theme

 

方法その2: Luxeritas Update Theme を使用してアップデートする」の方が簡単だと思います。

私もいつも方法その2で更新しています。

 

試しに「方法その1: FTP 等で直接ファイルを上書きする」でやってみました。

私は知識が無いので「FTPとは?」という状態でした。以下のサイトを参考にさせてもらいました。

【簡単5分】FTPとは?サイトを始めた初心者が知るべきことを解説 | さばが教えるレンタルサーバー選び方講座

無料で使えるFTPソフトとして、私は「FFFTP」を選びました。(上記のサイトで無料で使えるFTPソフトとして、他に「WinSCP」「FileZilla」が紹介されていました。)

FFFTPダウンロードページ

エックスサーバーとFTPソフトを接続してファイルのやり取りを行う方法については以下のサイトを参考にさせてもらいました。

(FFFTPだけでなく、WinSCP、FileZillaもファイルのやり取り方法は同じ手順でできるそうです。)

エックスサーバーでFTP接続してファイルのやり取りを行う方法 | さばが教えるレンタルサーバー選び方講座

ダウンロードした「Luxeritas」 の zip ファイルを解凍して、「/wp-content/themes/luxeritas」にファイルを上書きしました。

結果は最初に書いたように、テーマ側に問題があるわけではなかったので方法その1、方法その2でも仕上がりは同じでした。

 

スポンサーリンク

 

最終的に解決した方法はプラグイン Crayon Syntax Highlighterを停止

もう1度エラー文に注目すると、/plugins/crayon-syntax-highlighterと書いてあります。

Fatal error: Uncaught ArgumentCountError: Too few arguments to function {closure}(), 2 passed in /home /     /hikikomorineet.com /public_html /wp-includes /class-wp-hook.php on line 286 and exactly 3 expected in /home /     /hikikomorineet.com /public_html /wp-content /themes /luxeritas /inc /admin-comments.php:46 Stack trace: #0 /home /     /hikikomorineet.com /public_html /wp-includes /class-wp-hook.php(286): {closure}('\xE5 \x81 \x89 \xE3 \x81 \x9D \xE3 \x81 \x86 \xE3 \x81 \xAB \xE6 \x9B \xB8…’, Object(WP_Comment)) #1 /home /     /hikikomorineet.com /public_html /wp-includes /plugin.php(208): WP_Hook->apply_filters('\xE5 \x81 \x89 \xE3 \x81 \x9D \xE3 \x81 \x86 \xE3 \x81 \xAB \xE6 \x9B \xB8…’, Array) #2 /home /     /hikikomorineet.com /public_html /wp-content /plugins /crayon-syntax-highlighter /crayon_wp.class.php(1102): apply_filters('get_comment_tex…’, '\xE5 \x81 \x89 \xE3 \x81 \x9D \xE3 \x81 \x86 \xE3 \x81 \xAB \xE6 \x9B \xB8…’, Object(WP_Comment)) #3 /home /     /hikikomorineet.com /public_html /wp-content /plugins/crayon-syntax-highlighter /crayon_wp.class.php(1075 in /home /     /hikikomorineet.com /public_html /wp-content /themes /luxeritas /inc /admin-comments.php on line 46
サイトで技術的な問題が発生しています。サイト管理者のメールを確認して指示に従ってください。

Crayon Syntax Highlighterとは、記事中にソースコードを綺麗に表示させるプラグインです。

とりあえず、Crayon Syntax Highlighterを停止してみました。

すると、「作成中の記事を下書き保存すると、ずっと保存中の状態で保存が終わらない」、「新規追加をしようとするとエラー文が表示される」というのがなくなりました!

下書き保存もスムーズにできるし、新規追加をクリックしてもエラー文は表示されず通常の画面が表示されました。

ちなみに再度、Crayon Syntax Highlighterを有効化しようとすると、ページ上部に以下が表示され再度有効化することはできなくなりました。

重大なエラーを引き起こしたため、プラグインを有効化できませんでした。
Fatal error: Uncaught ArgumentCountError: Too few arguments to function {closure}(), 2 passed in /home /     /hikikomorineet.com /public_html /wp-includes /class-wp-hook.php on line 286 and exactly 3 expected in /home /     /hikikomorineet.com /public_html /wp-content /themes /luxeritas /inc /admin-comments.php:46 Stack trace: #0 /home /     /hikikomorineet.com /public_html /wp-includes /class-wp-hook.php(286): {closure}('\xE5 \x81 \x89 \xE3 \x81 \x9D \xE3 \x81 \x86 \xE3 \x81 \xAB \xE6 \x9B \xB8…’, Object(WP_Comment)) #1 /home /     /hikikomorineet.com /public_html /wp-includes /plugin.php(208): WP_Hook->apply_filters('\xE5 \x81 \x89 \xE3 \x81 \x9D \xE3 \x81 \x86 \xE3 \x81 \xAB \xE6 \x9B \xB8…’, Array) #2 /home /     /hikikomorineet.com /public_html /wp-content /plugins /crayon-syntax-highlighter /crayon_wp.class.php(1102): apply_filters('get_comment_tex…’, '\xE5 \x81 \x89 \xE3 \x81 \x9D \xE3 \x81 \x86 \xE3 \x81 \xAB \xE6 \x9B \xB8…’, Object(WP_Comment)) #3 /home /     /hikikomorineet.com /public_html /wp-content /plugins /crayon-syntax-highlighter /crayon_wp.class.php(1075 in /home /     /hikikomorineet.com /public_html /wp-content /themes /luxeritas /inc /admin-comments.php on line 46

今後コードを入力したいなら、記事編集ページの「ブロックの追加」で、Luxeritas Blocksシンタックスハイライターを使用しようと思います。

 

まとめ

今回はテーマを更新したら不具合が生じた時の解決した方法と、そのほかに試した方法についてまとめました。

不具合の原因はプラグインでした。ただ、プラグインそのものが悪いわけではなく、使用しているテーマとの相性が悪かったようです。

プラグインをインストールする時は、そのプラグインをインストールする必要があるのか、テーマとの相性がいいか、というのを考えてからにしようと思います。

そして、エラー文にプラグインの名前があるかチェックしようと思います。エラー文にプラグインの名前が記載されていたら、そのプラグインが原因の可能性があると今回分かりました。

以上、WordPress初心者、知識なしの私がテーマを更新した時に起きた不具合に対する解決方法と試みでした。

もっと、勉強して短時間でいろいろなことに対処できるようになりたいです。頑張ります。