【WordPress】functions.phpでの編集で発生するエラー

Pocket

WordPressをカスタマイズしていく上で、「functions.php」を編集する機会があると思います。

この「functions.php」、WordPressのphpの中でもめちゃくちゃデリケートなようで、ちょっとしたことでWordPressの機能障害が起こります。

私もWordPress初心者ですが、今回はWordPress初心者に起こりやすい「functions.php」の不具合をメモしていこうと思います。

「functions.php」を編集する前のバックアップは必ず行う!

functionsphpでの不具合1

「外観」→「テーマの編集」→「テーマの為の関数(functions.php)」

子テーマの「functions.php」を編集していきます。親テーマの「functions.php」を編集していくとエラーが起こった時に初期状態に戻しにくくなります。
まだ子テーマを作成していない方は作成し、そちらのほうで編集していきましょう。

で、いざ編集を行う前に、必ず元の状態に戻せるよう、コードを保存しておくか、ダウンロードしてバックアップはとっておきましょう。

本当にこの「functions.php」の編集は、1文字違うだけでWordPressの機能に不具合をもたらします

逆に言えば原因不明の不具合が発生した場合、「functions.php」が原因であることが多い為、真っ先にここを確認してみましょう。

「functions.php」で起こりやすい不具合

これは私が実際に体験したことですが、他のサイトを参考にして「functions.php」の編集を行っていた時のことですが、あるソースコードを記述する際にそのサイトからコードをコピーして貼り付けたんですね。

で、そのコードに誤りという訳ではないのですが、コード間に1行か2行ほど改行空白があったんですね。
この改行空白が原因でエラーが発生したんです。

とりあえず状況を再現してみますね。

functionsphpでの不具合2

画像はちょっと極端に空白を空けて再現しています。
実際は問題があるなんて気づかないほどの、1行改行されていただけって感じだったんです。

で、この状態で保存する何が起こるかというと…

今後、記事投稿時に「下書き保存」や「プレビュー確認」、「公開」、更には「スタイルシートの変更保存」した時にボタンを押すと思いますがそのあとに…

 

 

画面が真っ白になります!

 

 

 

記事作成時にプレビュー確認しようとして、画面が真っ白だったのはびっくりしました。
今まで正常に動作していたのに、保存やプレビュー確認を行う度に真っ白い画面に切り替わるんですからね。
一応それでも記事の保存自体はされているようで、「ブラウザの前ページに戻る」を押せばしっかり記事は書きかけの記事は残っていました。
プレビュー画面が確認できないのはなかなか痛いですね。
しかもなんかWordPressの動作自体も遅くなっている気がしました。

しかし実はもっと深刻なエラーが起こります。それが次の項目。

メディアライブラリが使えない!

多分この症状が最も深刻ですね。「functions.php」に改行空白を入れたことで、画像の挿入などを行う為に必要なメディアライブラリが使えなくなります。
これがその時の画像↓functionsphpでの不具合3

画像を挿入しようとメディアライブラリを開こうとすると、読み込みを示すインジケーターが回り続けるだけで、一向に読み込みが終わりません。

ええ、いつまでたっても終わりませんでした。

これは明らかにヤバいと思って何が原因かと調べたところ、「functions.php」に改行空白に行きついたんですね。

ネットで色々調べているうちに、私以外にもメディアライブラリの読み込みが終わらない、使えなくなったという方がいたようですが、今だから分かります。

このエラー、不具合が起こった場合、原因は「functions.php」にあるはずです。
しかもその原因は1,2行の改行空白です!
一応「functions.php」の編集画面で改行を全て取り除いて保存したところ、WordPressの不具合はなくなりました。

 

まとめ

はい、これが私が体験した「functions.php」絡みのエラーです。まさか一個の改行や一文字の間違いでこんなエラーが起こるとは…
他のサイトからコードを持ってきたとしても、そのコードで必ずしも正常にWordPressが動くかというと、そうじゃないこともあるんですね。

もしもWordPress使用中、度々画面が真っ白になる、メディアライブラリの読み込みが終わらないといった症状が出た場合、原因は十中八九、「functions.php」が原因なので必ずバックアップはとっておきましょう!

エッグ

シェアする

コメントを残す

メールアドレスが公開されることはありません。

コメントする