WordPressの初心者がfunctions.phpの編集でエラーを防ぐ為に気を付けたいこと。

13040301

WordPressをより便利にカスタマイズしたい場合、functions.phpへの記述は避けて通れない作業です。

しかし、functions.phpは他のテンプレート(header.php等)に比べると、とてもデリケートで、ちょっとしたミスがダッシュボードへログインできなくなったり、サイトが閲覧できなくなってしまいますので、注意が必要です。

Functions.phpとは、簡単に説明するとWordPressに新しい機能やルールを付加する為に記述をまとめるテンプレートとなります。それらを簡単に導入できるのがプラグインだったりもします。

functions.phpの記述ミスで引きおこる可能性があるエラー

  • サイトが真っ白になる(サーバーによってPHPのエラーが表示されない為)
  • サイトにエラーコードが表示されるだけ
  • ダッシュボードにログインできない
  • functions.phpで記述したテキストが文字化けする

functions.phpの編集をする前にしておくこと

functions.phpは、初心者だけでなく、プロでも稀に記述ミスをすることもあります。
それによりエラーが起こった時に、さっと解決できるのは 現在正常に機能しているfunctions.phpのバックアップを取っておくことです。
これにはFTPからテーマファイルへアクセスしてfunctions.phpをダウンロードする必要があります。
これなら エラーが起こっても、すぐにバックアップファイルを上書きすれば元に戻ります。

functions.phpの基本的なルール

functions.phpは開始と終了のタグがあります。この間に いくつの自作関数を入れても問題ありません。
たまに関数毎に開始タグと終了タグを入れているテーマを見ますが、これはエラーを引き起こす可能性があります。

よくあるミスとして、開始タグの前 終了タグの後にスペースや改行を入れてしまうことがあります。
開始タグの前、終了タグの後にはスペースや改行をしないように気を付けましょう。
<?php //開始タグ

//関数記入例
function remove_hwstring_from_image_tag( $html, $id, $alt, $title, $align, $size ) {
    list( $img_src, $width, $height ) = image_downsize($id, $size);
    $hwstring = image_hwstring( $width, $height );
    $html = str_replace( $hwstring, '', $html );
    return $html;
}
add_filter( 'get_image_tag', 'remove_hwstring_from_image_tag', 10, 6 );
//関数終わり 

//新しい関数はこの下に追加していく

?> //終了タグ
funtions.phpの中にブラウザ出力要素が入っているとエラーになる場合があります。wordやexcelからのコピペも同様です。
他のサイトからコピペする際等はテキストエディター等に一度コピーしてから、それを再度コピペして使うと良いです。
※他サイトからのコピペの場合、改行やスペース等、目に見えないものも含まれます。
functions.phpはhtml形式の記述と混在できるので注意が必要です。

編集したらエラーになってサイトが表示されなくなった。
何かが・・

functions.phpの編集や保存(文字コード)方法

functions.phpは文字コードをUTF-8(BOM無し)という設定で保存する必要があります。
これはテキストの見た目では分かりません。他の文字コード等を使用するとエラーの原因となります。
又、functions.php内に記述した日本語が文字化けするなどのエラーも同様の原因が考えられます。

functions.phpの編集をするエディターの条件

※ 文字コードを指定でき、UTF-8(BOM なし、UTF-8N)で保存できること。

functions.phpの編集に使ってはいけないエディター

※ Windows のメモ帳(Notepad) — UTF-8 BOM なし保存が不可
※ リッチテキストエディタ、Word等ソフトで書かれたテキスト — バイナリファイルとなるため不可

functions.phpの編集に適したエディター

EmEditor(Windows)(シェアウェア版・フリー版)
サクラエディタ(Windows)(フリーウェア)
TeraPad(Windows)(フリーウェア)
秀丸エディタ(Windows)(シェアウェア)

ソフトでファイルごと文字コードを変換する

フリーのソフトでファイル(functions.php)を一発文字コード変換できるKanji Translatorというものがあります。
これも便利です。
Kanji Translator→

テーマのカスタマイズ等のご相談/お問い合わせはこちら
個人の方でもお気軽にご相談ください