functions.phpの場所/作り方/書き方や編集方法まとめ
この記事では「WordPressのfunctions.phpファイルの場所や作り方、書き方や編集の方法」の解説をしていきます。
WordPressを管理していると、いたるところでfunctions.phpという名前のファイルを修正をせまられる場面が多いと思います。
でも最初のうちはfunctions.phpについて何もわからず困ってしまったりしますよね。
この記事を読むと以下のような悩みが解決します。
- functions.phpって何?
- どうやって作成するの?
- 編集方法やルールを教えて?
この記事を監修・執筆した専門家
こんにちは!この記事を監修・執筆した斎藤はじめと申します。
私は現役のエンジニアで、普段はWordPressの開発案件などをメインに担当しています。経歴としては誰もが知っている月間数千万人が利用するサービスの開発をしたり、今でも月間数百万人が訪問する規模のWordPressサイトの運営しております。WordPressを触らない日はありません。
そんな私がプロの目で解説していきます!
functions.phpとは?
functions.phpはWordPressの機能の追加や変更をするためにWordPressの仕様で用意されているファイルです。
WordPressをプラグインなどを使わずに手動でカスタマイズをするには、基本的にこのファイルに追加していくことになります。
functions.phpのサンプル
参考までに具体的なfunctions.phpの例を示します。CSSやJavaScriptを新たに読み込む例です。
今はこちらの内容の意味はわからなくて大丈夫です。
<?php
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style( 'style-name', get_stylesheet_uri() );
wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true );
});
functions.phpはPHPで出来ている
functions.phpはPHPというプログラミング言語で書く必要があります。
*.phpというファイルはPHPで書かれたファイルという意味です。
WordPress自体がPHPで開発されており、functions.phpもこのPHP言語のルールに沿って編集をします。
functions.phpでよくあるカスタマイズ
functions.phpでよく行われるのがこのようなカスタマイズです。
- CSSやJSの読み込み追加
- サイトの特定箇所にHTMLタグやスクリプトを挿入する
- オリジナルのショートコード機能の追加
- PHP関数(機能)の追加
- 投稿一覧の表示条件や並び順などの変更
- テーマやWordPressのデフォルト機能の上書き
などなど様々ですが、結局はWordPressとPHPのスキルがある人が調べれば、だいたいのカスタマイズは何でもできます。
functions.phpの場所は?どこにある?
functions.phpの実ファイルは
<WordPressインストールディレクトリ>/wp-content/themes/<テーマ名>/
の直下にあります。
同名のファイルをプラグインなどが勝手に作成している場合がありますが、functions.phpといえば通常上記のファイルになります。
functions.phpの編集の仕方
functions.phpの編集方法についていくつか紹介します。
WordPressの管理画面から編集する
WordPressの管理画面からfunctions.phpを参照・編集するには以下のように「外観>テーマ(ファイル)エディター」にアクセスしてテキスト編集をします。
文法などに間違いがあればエラーが起きて反映されないので一番安全な方法かもしれません。
ExploreライクなUIでどんなテキストファイルでも修正可能なFileManager
筆者が超おすすめするプラグインがこの「File Manager」というプラグインです。(※同じような名前のプラグインがたくさんあるので画像や作者など確認してください)
WindowsのエクスプローラのようなUIでファイルの様々操作とテキスト編集ができる超便利なプラグインです。使い始めるとこれなしでWordPressを使うなんて考えられないくらい便利です。
使い方など詳しくはこちらの記事に掲載しています。
FTPソフトで直接上書き
FTPとはサービスやソフトウェアの名前ではなく昔から使われているファイル転送の「通信方式」のことです。
WordPressの管理画面自体が使えなくなるような障害対応などのために事前にアクセスできるよう確認しておくと安心でしょう。
FTPのソフトウェア
FTPに対応したソフトウェアで有名なのは「FFFTP」や「FileZilla」などがあります。筆者が使っているのは「FileZilla」です。
画面UIとしては左右のパネルにファイル一覧が表示されて左から右に転送するようなUIが多いです。
FileZilla: https://filezilla-project.org/download.php?ty…
FFFTP: https://forest.watch.impress.co.jp/library/so…
FTPソフトウェアの設定
FTPソフトの設定は基本的にレンタルサーバーの管理画面などに記載の「ホスト」「ユーザー」「パスワード」さえ入力すればOKです。
※一部のサービスではポート番号も入力する必要があります
レンタルサーバーのファイルマネージャーやFTPサービス
お使いのWordPressのレンタルサーバーにはソフトいらずの「ブラウザで使えるファイルマネージャー」やFTP関連サービスが大抵ついていますのでかんたんに紹介しておきます。
エックスサーバー系(XSERVER、wpX Speed、wpXシン)のFTP
エックスサーバー、wpXシン・レンタルサーバーにはブラウザで使えるファイルマネージャがついています。
wpX SpeedにはブラウザだけでFTP通信できるサービスがあります。
FTPソフトを使いたい場合は管理画面で設定を確認してFTPソフトを設定します。
エックスサーバーの場合はFTP設定情報は最初のメールできていますのでご注意。
ロリポップのFTP
ロリポップにはブラウザでFTP通信するファイルマネージャがあります。
FTPソフトを使う場合は管理画面のFTPアカウント情報を元にFTPソフトの設定をします。
functions.php編集のルールや注意点
PHPルール
PHP言語ファイルの記述ルールとしてプログラムコードは以下のようにphpタグの囲みの中にある必要があります。
<?php
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style( 'style-name', get_stylesheet_uri() );
wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true );
});
正しい記述ルール
<?php ←PHP開始。
→PHPのプログラムを書く場所
?> ←PHP終了。最後PHPで終わる場合だけ省略可能
<?php ←PHP開始。
→PHPのプログラムを書く場所
?> ←PHP終了。
→画面に出力するHTMLなどの内容を書く場所
<?php ←PHP開始。
→PHPのプログラムを書く場所
よくある間違った記述例
先頭にphp開始タグを忘れた
→PHPのプログラムを書く場所
phpの閉じるタグがないのに再度開始だけがされている
<?php
→PHPのプログラムを書く場所
<?php
→PHPのプログラムを書く場所
他にも1行を;で終えるなどPHPのルールはいろいろありますが、本1冊できてしまうレベルなので、ここでは省略します。
親テーマ内に書かない
functions.phpを修正する上でやってはいけないことを紹介します。
それは「親テーマ内のfunctions.php」は修正してはいけない、です。
前述のとおりfunctions.phpはWordPressテーマの中にあります。
WordPressのテーマには親テーマと子テーマという概念が存在し、WordPressのカスタマイズには「親テーマ内のファイルに対して行ってはいけない」という鉄則があります。
functions.phpもその例外ではなく、親テーマ内のfunctions.phpは修正してはいけません。
functions.phpを修正する場合は必ず親テーマではなく子テーマのfunctons.phpを修正してください。
※その修正してはいけない理由やテーマや親テーマと子テーマについては詳しくは、こちら↓の記事を参考にしてください。
ファイルの内容が長くならないよう分割する
長い間WordPressの更新を行っているとちょっとずつのカスタマイズが積もり積もって、functions.phpファイルが異常に長くなったりします。
場合によっては1000行を超えてくるようなこともあるでしょう。
このような大きなfunctions.phpはメンテナンス的にもバグやリリース時の運用エラーが起こりやすくなり、あまりよろしくありませんので少々面倒でもファイルを分割して管理するようにしましょう。
ミスるとサイト全体落ちる
functions.phpには1つ大きな恐ろしい点があります。
それは1つのミス、1文字のミスがサイト全体のエラーにつながってしまうということです。
対策としては、前述の「WordPressの管理画面から編集する」で紹介したテーマファイルエディターを使うことも1つです。
保存時にエラーチェックしてもらえるので安全です。
他にも致命的な事態をさけるためにも以下のような対応をおすすめします。
- なるべく細かく小分けに追記しながら修正していく
- すぐにfunctions.phpを元に戻せるようにしておく
- WordPressのログを出力設定をしておく
ログファイル設定については以下でまとめています。
まとめ
最後までお読みいただきありがとうございました。
最後に記事内で紹介したfunctions.phpに関連するリンクをまとめておきます。