WordPressの使い方

WordPressのfunction.phpエラーを直す方法とは?

更新日:

WordPressのfunction.phpエラーを直す方法とは?

 

誠太

こんにちは、誠太です!

 

WordPress を使用していると、『function.php』に新しい構文を追加する機会がでてくるかと思います。

しかし、構文を新しく追加をした矢先。

 

よっし!!これで・・・

エ、エラー?!しかも画面真っ白!!

 

画面が真っ白で、ついでに頭の中も真っ白になってしまっている状況になってしまっていませんか?

 

本記事では、function.phpエラーの原因・修正方法。WordPressのカスタマイズ時に注意することを解説します。

 

この解説どおりに修正して頂ければ、サイトや管理画面にアクセスできるようになるので、いま現在真っ白な状況かもしれませんが焦らないでくださいね!

 

本記事の内容

  • function.phpのエラーを直す方法がわかります
  • WordPressのカスタマイズ時の注意点がわかります
  • 今の現状が直ります

function.phpのエラーが起こる原因

function.phpのエラーが起こる原因

 

それでは、function.phpにあたらしく何らかの記述をした際に何故エラーが発生するのかを簡単に解説していきたいと思います。

 

function.phpエラーの原因① 同じ公文を二重で書き込んでいる

言語を理解できていない初心者の場合、参考になるサイトなどから構文をコピーして使用することが大半だと思います。

 

そのため、ショートカットキーの「Ctrl + V」で構文を貼り付けるのが大半を締めていると言っても過言ではないと思うのですが、誤って「Ctrl + V」を2回押してしまって、同じ構文が2個記述されてしまうとエラーが発生してしまいます。

 

新しい構文を貼り付けで追加する際は、画面右のスクロールバーを入力した場所まで上げて、二重に記述されていないか確認が必要です。

 

function addStyleHead(href) {var link = document.createElement("link"); link.rel = "stylesheet";link.href = href;document.head.appendChild(link);};
//本来ここまででOK//

function addStyleHead(href) {var link = document.createElement("link"); link.rel = "stylesheet";link.href = href;document.head.appendChild(link);};
//不要な二重記述//

 

function.phpエラーの原因② 文章の何処かが間違っている

よくありがちなのは、このようなミスが多いのではないかと思います。

 

よくありがちなミス

  • 「{」でスタートした構文が「}」で閉じられていない。
  • 構文末に「;」の記述がない関数名が間違っている

 

恐らく、コピーした構文が最初から最後までしっかりとドラッグされていたらエラーは発生しないんじゃないかと思いがちですが、最後までドラッグされていなかった場合、エラーとなってしまいます。

 

誠太
コピーする構文の最後の1文字までしっかりとドラッグできているか、確認をするようにクセを付けておきましょう!

 

ちなみに関数名が間違っている場合は、例としてこのような場合です。

 

関数が間違っている場合

  • 正:function addStyleHead(href) {
  • 誤:fanction addStyleHead(href) {

 

コピー&ペーストで構文を追加する場合、コピーをしたサイト側で間違っている部分に気がつくのは正直難しいと思います。

 

そのため、WordPress環境によってはエラーヶ所を教えてくれるものもあるので、そちらでエラーが表示されていないか情報を更新する前に確認しておきたいですね。

 

もしエラー記号が表示されない環境で画面が真っ白になってしまった場合、記述をした構文を全て削除して、同じ種類の構文を載せているサイトからコピーをして解決しましょう。

 

function.phpエラーの原因③ 文末に空白がある(全角・半角スペース)

これも実によくある事例です。

原因としてあげられるのは、スペース表示がされないメモ帳を使用して構文を貼り付け入力したこと。

 

文末に空白があることに気が付かずに『更新』ボタンを押してしまうと、もれなくエラーになってしまいます。

 

そのため、 function.php に限らず、CSS(Style.css)などでも同じことが言えるのですが、構文を貼り付ける際はメモ帳ではなく TeraPad のような空白が入っていることを確認できるメモ帳を使用するようにしましょう。

 

僕もこの空白でのエラーが怖くて、TeraPad に移行しました。

構文をコピーしたサイトによっては文末に空白が入っている場合があるので、気が付かないで貼り付けてしまう事を防ぐのに最適です。

 

 

管理画面でエラー文章が表示された時の修正方法

管理画面でエラー文章が表示された時の修正方法

 

それでは WordPress の管理画面にログインしようとした際に、エラーとなり画面が真っ白になってしまった時の対処法を解説します。

 

function.phpエラー修正の方法① エラー文が表示されていない場合はデバッグ機能を追加

  • FFFTP・FilZira の WordPress をインストールしたフォルダ内を確認
  • wp-config.php を見つけたらサーバーからダウンロード
  • define('WP_DEBUG', false); を define('WP_DEBUG', true); へ書き換え

 

基本的にデバックの設定はされているものかと思われますが、念の為、設定方法をお伝えします。

 

WordPress をインストールしたサーバーの中に「wp-config.php」というファイルがあるかと思いますので、そのファイルをサーバーからダウンロードして記述し直します。

 

デバッグモードが有効になっているかは下記の構文で確認することができます。

 

define('WP_DEBUG', false);

 

この状態では無効状態になっているので、「false」を「true」に変更を行えば、完全に真っ白な画面ではなくエラーコードが表示されるようになります。

 

表示されるエラー文は下記のような文になります。

Parse error: syntax error・・・(中略)・・・/Affinger5 Child/function.php on line 99

 

このエラー分が表示されるだけでも何行目の部分でエラーが起きているのか確認できるようになるので、真っ白よりかは少し安心できます。

 

function.phpエラー修正の方法② サーバーにアクセスし編集を加えたファイルを修正

  • FFFTP・File Zira 等を使用し、function.php をダウンロード
  • TeraPad を使用し、function.php を開く
  • エラー文で指定されている行を修正もしくは削除をする
  • FFFTP・File Zira へ function.php をアップロードし管理画面を確認。

 

上記のエラーの文章が確認できたら、FFFTP や File Zira などを使用し、サーバーから function.php をダウンロードします。

 

先ほど紹介した TeraPad を使用してfunction.php を開きます。

 

エラー文で表示されている行を確認したらペーストで入力した構文を一度全部削除するか、「{}」で閉じられていなかったり「;」で閉められていない場所がわかるようなら追記をして、上書き保存を行います。

 

サーバーへ修正した function.php を上書きし、管理画面へアクセスが出来るかどうか確認します。

 

function.phpエラー修正の方法③ FTP()を使用せずにエックスサーバー内で修正する

今回はぼくが使用しているエックスサーバーを例に解説します。

 

  • エックスサーバーのファイル管理にログイン
  • ドメイン名➜public_html➜wp➜wp-content➜themes➜使用テーマフォルダ➜function.php
  • function.php をクリックするとファイルとしてダウンロードされる
  • TeraPad を使用し、エラー構文で表示されている行を修正
  • ファイルのアップロードをクリックし、修正した function.php をアップロード

 

まずはエックスサーバー(契約しているサーバー)の管理画面にアクセスします。

 

その後、ファイル管理(サーバーにアップロードされているファイルの管理画面)へ移動し、function.php がある場所まで移動します。

 

function.php をダウンロード(エックスサーバーの場合は、ファイル名クリックでOK)。

Terapad でエラーとなっている行の構文を削除もしくは修正。

サーバーの function.php があるところへ修正した function.php をアップロード。

管理画面にアクセス可能可確認を行います。

 

function.phpをカスタマイズする時の注意点!

function.phpをカスタマイズする時の注意点!

 

それでは次に function.php のカスタマイズを行う際の注意点をお伝えします。

 

WordPressをカスタマイズする時の注意① 必ず最初にバックアップを取ること

これは style.css の場合でも同じことが言えるのですが、WordPress の動作に関するファイルに手を加える時は必ずバックアップを取るようにしましょう。

 

万が一致命的なダメージを受けてしまった場合、バックアップから元の状態に戻せる可能性が極めて高いので、必ず定期的にバックアップしておくことをオススメします。

 

ぼくは下記のプラグインを使用し、1周間おきにバックアップするようにスケジュールを立てていて、function.phpを編集する前には必ずバックアップを取っています。

 

WordPress プラグイン「BackWPup」

BackWPup

 

WordPressをカスタマイズする時の注意② サーバーからファイルをダウンロードしてから作業

WordPress の管理画面での function.php 等の修正は止めましょう。

 

エラーが改善されているにもかかわらず、改善されたことになっていなかったり、エラーを起こした際に結局はサーバーから function.php 等をダウンロードしなければいけないので二度手間になってしまいます。

 

サーバーからfunction.phpをダウンロードして、TeraPad で修正を加えたほうがトータル的に楽なのは間違いないですね。

 

WordPressをカスタマイズする時の注意③ TeraPadなどを使用して改善を加える

これは途中でお伝えしましたが、Windowsに標準搭載されている「メモ帳」は構文記述の際には使用しないでください。

 

空白スペースなどの見落としで管理画面がエラーを起こしてしまう事を未然に防げることを考えれば、使わない手は無いかと思います。

 

また、WordPressで立ち上げたサイトのトップページなどで、このエラー文が表示されている状態だと、あなたの WordPress ファイルがどのような場所にあるかも表示されてしまう状態になるので、セキュリティ上あまりよろしくありません。

 

じゃあ、上の方で書いていたデバッグ機能をなくしたほうが良いんじゃないの?

 

という声が聞こえてきそうですが、無かったら無かったでエラーを修繕するのにとても時間がかかってしまうことが予想されます。

 

あなたのサイトのPVが高ければ高いほど、画面が真っ白になっていることにより、ユーザーの不安感をつのらせてしまう原因にもなりかねないので、早期改善を第一に考えるならばデバッグ機能はあなたにとって必須の対策となります。

 

function.phpのエラーを修正しても画面が直らない場合

function.phpのエラーを修正しても画面が直らない場合

 

ここまで紹介した方法で間違いなくエラーを修正したにもかかわらず、管理画面にアクセスができない場合があります。

 

その場合は、すこし時間をあけることで改善されるので、不安だとは思いますが1~2分ほど待ってから再度、管理画面にアクセスしてみて下さい。

 

function.php に構文を記述する時は、最新の注意を!!

function.php に構文を記述する時は、最新の注意を!!

 

本記事でお伝えしたfunction.phpのエラーを修正するためのポイントはこちらです。

 

メモ

構文のコピーは必ず最後までドラッグしたのを確認してから

WordPress Debug を有効にする

function.php 等 を操作する時は、サーバーからダウンロードしTeraPad を使用する

バックアップは必ず記述前に行う

 

これを徹底するだけでもかなりエラーが発生する頻度は下げられますし、万が一エラーが発生してもバックアップの復元からすぐに元の状態に戻せるようになります。

 

本記事を参考にfunction.phpに編集を加える際には、万全の準備をしてから編集に望みましょう。

  • この記事を書いた人
  • 最新記事
誠太

誠太

接客業で年間1600万円の売上を達成した経験を活かして、リアル接客とWebマーケティングを融合。『事実と根拠を明確に、誠実な情報発信』をモットーにブログを更新しています。

-WordPressの使い方
-

Copyright© SEITALITY , 2019 All Rights Reserved.