WordPress で functions.php を検索、アクセス、編集する方法
公開: 2022-08-23WordPress の開発を始めたばかりの場合、よく知っておくべき最も重要なファイルの 1 つはfunctions.phpファイルです。 実際には、WordPress Web サイトで使用できるfunctions.phpファイルが 3 つあり、それぞれが異なる役割を果たします。 これらのファイルが存在する場所、その目的、およびいつどのように変更するかを把握しておくと、問題のトラブルシューティングを行う際に役立ち、サイトの機能をより詳細に制御できます。
この記事では、WordPress のfunctions.phpファイルについて知っておくべきことをすべて説明します。 functions.php の機能と、それを見つけて編集する方法を学びます。 試してみるのに役立ついくつかのコード スニペットも含まれます。
以下の目次を使用して、最初から読み進めたり、特定のセクションにジャンプしたりできます。
- WordPress のfunctions.phpとは何ですか?
- functions.phpファイルはどこにありますか?
- functions.phpへのアクセス方法
- WordPress 管理インターフェースでfunctions.phpにアクセスする
- FTP 経由でfunctions.phpにアクセスする
- cPanel でfunctions.phpにアクセスする
- WordPress でfunctions.phpを編集する必要があるのはいつですか?
- WordPress でfunctions.phpを編集する方法
- WordPress テーマ ファイル エディターでfunctions.phpを編集する
- テキストエディタでfunctions.phpを編集する
- cPanelで直接functions.phpを編集する
- プラグインを使用して WordPress サイトに機能を追加する
- functions.phpをセキュリティ エクスプロイトから保護する方法
- WordPress のfunctions.phpに追加できるコードは何ですか?
- よくある質問
- functions.phpを編集するには、子テーマを作成する必要がありますか?
- WordPress ダッシュボードにアクセスできない場合、バックアップからfunctions.phpを復元するにはどうすればよいですか?
- functions.phpファイルに JavaScript を追加できますか?
WordPress のfunctions.phpとは何ですか?
WordPress では、 functions.phpファイルは、サイトの動作を決定する重要なコードが存在する場所です。 実際には、すべての WordPress Web サイトに少なくとも 2 つのfunctions.phpファイルがあります。1 つは WordPress コアに含まれ、もう 1 つはテーマに含まれています。 子テーマを使用している場合は、子テーマ フォルダーにfunctions.phpも必要です。
WordPress コアのfunctions.phpファイルには、WordPress が機能するために必要な重要なコードが含まれています。 WordPress コアのfunctions.phpファイルのコードを変更することはほとんどありません。
テーマのfunctions.phpファイルは、カスタム メニューの場所、ウィジェット領域、カスタム ヘッダーとフッターのコンテンツと機能、投稿の抜粋の長さなど、Web サイトのすべてのテーマ固有の機能が存在する場所です。
テーマのfunctions.phpファイルは、WordPress プラグインとほとんど同じように動作します。 違いは、テーマ固有のコードにはfunctions.phpを使用し、テーマを切り替えても残る機能にはプラグインを使用する必要があることです。
functions.phpファイルはどこにありますか?
WordPress コアとテーマ ファイルの両方でfunctions.phpファイルが何をするかについて説明しましたが、 functions.phpファイルを見つけるにはどうすればよいでしょうか? WordPress のfunctions.phpはどこにありますか?
すべての WordPress ファイルは、サイトのルート ディレクトリとさまざまなサブフォルダーにあります。 通常、ルート ディレクトリにはpublic_htmlやwwwなどの名前が付けられますが、名前が異なる場合もあります。 サーバー上の WordPress インストール フォルダーの場所がわからない場合は、Web ホストに問い合わせてください。
WordPress ファイルがサーバー上のどこにあるかがわかったら、 functions.phpファイルの検索を開始できます。 functions.phpには、WordPress コア、テーマ フォルダー、子テーマ フォルダーの 3 つの場所があることを説明しました。 このセクションでは、それぞれを見つける場所について説明します。
WordPress コアのfunctions.phpはどこにありますか?
WordPress コアでfunctions.phpの場所を探している場合は、WordPress インストールのwp-includesフォルダーにあります。

WordPress コアでfunctions.phpを編集するべきではありませんが、何らかの理由で検査する必要がある場合があります。 WordPress コアのfunctions.phpをいじる最も可能性の高いシナリオは、マルウェアが挿入されている疑いがある場合です。
functions.phpを開く前に、誤ってファイルを変更して重大なエラーが発生した場合に備えて、WordPress サイトのバックアップを作成する必要があります。 functions.phpが破損またはハッキングされていることが判明した場合、WordPress の他の領域が影響を受けている可能性があります。 最善の方法は、問題のあるスクリプトを 1 つずつ削除しようとするのではなく、単に WordPress を新しいインストールに置き換えることです。
WordPress テーマ フォルダのfunctions.phpはどこにありますか?
テーマのfunctions.phpファイルは、テーマ フォルダーのメイン ディレクトリにあります: wp-content → themes → yourtheme 。

WordPressの子テーマフォルダのfunctions.phpはどこにありますか?
WordPress 子テーマのfunctions.phpファイルは、子テーマ フォルダーのメイン ディレクトリにあります: wp-content → themes → yourtheme-child 。

functions.phpにアクセスするにはどうすればよいですか?
functions.phpがどこにあるかを知ることは、仕事の半分にすぎません。 ここで、WordPress でfunctions.phpにアクセスする方法が問題になります。 WordPress コアのfunctions.phpファイルには、セキュア ファイル転送プロトコル (SFTP) または cPanel を介してのみアクセスできますが、テーマと子テーマのfunctions.phpファイルには、WordPress テーマ ファイル エディターからもアクセスできます。
WordPress テーマ ファイル エディターでfunctions.phpにアクセスする
テーマまたは子テーマのfunctions.phpファイルにアクセスする必要がある場合は、WordPress テーマ ファイル エディターから直接アクセスできます。 WordPress ダッシュボードで、 [外観] → [テーマ ファイル エディター] に移動します。
[テーマの編集]ページに移動します。 ここから、 [編集するテーマを選択] の横にあるドロップダウンでテーマを選択し、[選択] をクリックします。 画面の右端にある [テーマ ファイル] 列の下に、編集可能なファイルのリストが表示されます。 functions.phpをクリックしてファイルを開きます。

親テーマのfunctions.phpファイルを開いている場合は、画面下部の[ファイルを更新] ボタンの上に、「注意: これは現在の親テーマのファイルです」という警告通知が表示されます。
注:テーマの開発者でない場合は、子テーマのfunctions.phpファイルを変更して、今後のテーマの更新で編集内容が上書きされないようにする必要があります。 |
SFTP 経由でfunctions.phpにアクセスする
ステップ 1: SFTP クライアントをインストールします。 SFTP クライアントをまだ持っていない場合は、ダウンロードする必要があります。 以下を含む、いくつかの優れた無料およびプレミアムオプションがあります。
応用 | システム | 無料またはプレミアム |
WinSCP | ウィンドウズ | 無料 |
ファイルジラ | ウィンドウズ、マック、リナックス | 無料およびプレミアムオプション |
サイバーダック | ウィンドウズ、マック | 無料 |
送信する | マック | プレミアム |
この例では、Filezilla を使用します。 他の SFTP クライアントも同様の方法で動作するはずです。
ステップ 2: SFTP 資格情報を取得します。 SFTP 経由でサーバーにログインするには、次の詳細が必要です。
- ホスト (サーバーの IP アドレスまたは URL)
- SFTP ユーザー名
- パスワード
- ポート番号
これらの詳細は、通常、ホスティング コントロール パネルで確認できます。 この情報が生成されるか、ホストから SFTP のユーザー名とパスワードを作成するよう求められる場合があります。 これらの認証情報の場所がわからない場合や、作成方法がわからない場合は、ホストのヘルプ ドキュメントで手順を検索するか、サポート チームにお問い合わせください。
ステップ 3: SFTP 資格情報を入力します。
ホストの IP アドレスまたは URL、SFTP ユーザー名、パスワード、およびポート番号 (通常は 22 または 2222 ですが、別のポートを使用するホストもあります) を入力します。

注: SFTP クライアントが初回使用時の信頼 (TOFU) 認証を使用している場合、「ホスト キーが不明です」というアラートが表示されることがあります。 SFTP クライアントを使用して再度サイトにアクセスする場合は、[このホストを常に信頼し、このキーをキャッシュに追加する] をオンにします。 [ OK]をクリックして続行します。

ステップ 4: Web サイトのルート ディレクトリに移動します。
ログインすると、画面のボタンに 2 つのファイル ツリーが表示されます。1 つは左側に、もう 1 つは右側にあります。 右側には、Web サーバー (リモート) のディレクトリが一覧表示されます。 左側には、コンピューター (ローカル) のディレクトリが一覧表示されます。
通常、ルート ディレクトリはwwwまたはpublic_htmlというラベルの付いたフォルダーにありますが、別の名前を使用している場合があります。 どのフォルダーを確認すればよいかわからない場合は、ホスティング プロバイダーにお問い合わせください。 ファイル リストの上部にwp-admin 、 wp-content 、およびwp-includesフォルダーが表示されれば、正しいフォルダーにいることがわかります。

ステップ 5: WordPress コア、親テーマ、または子テーマのfunctions.phpに移動します。 WordPress コアでfunctions.phpを探している場合は、 wp-includesフォルダーに移動します。
テーマ ディレクトリでfunctions.phpを探している場合は、 wp-content → themes → yourthemeに移動します。
子テーマの functions.php ファイルを見つけるには、 wp-content → themes → yourtheme-child に移動します。
ステップ 6: functions.phpをダウンロードします。 functions.phpの場所がわかり、アクセスできたので、ファイルを調べたり編集したりできます。 その前に、ダウンロードする必要があります。 functions.phpファイルを右クリックし、 [ダウンロード] を選択します。 ファイルがローカル マシンにダウンロードされます。

cPanel でfunctions.phpにアクセスする
ホストが cPanel を使用している場合は、そのファイル マネージャーからfunctions.phpにアクセスできます。 ホストのダッシュボードで cPanel を見つける方法がわからない場合は、カスタマー サポートにお問い合わせください。
ステップ 1: cPanel のファイル マネージャーを開きます。 cPanel に移動したら、[ファイル] セクションに移動し、[ファイル マネージャー] をクリックします。
ステップ 2: Web サイトのルート フォルダーを開きます。 ルート フォルダーは一般にwwwまたはpublic_htmlと呼ばれますが、別の名前が付けられている場合もあります。 一部のホストではルート フォルダーの命名規則が異なるため、どのフォルダーを参照すればよいかわからない場合は、ホスティング プロバイダーにお問い合わせください。
ファイル リストの上部にwp-admin 、 wp-content 、およびwp-includesフォルダーが表示されれば、正しいフォルダーにいることがわかります。
ステップ 3: functions.phpを見つけてダウンロードします。 WordPress コアのfunctions.phpファイルは、 wp-includesフォルダーにあります。
テーマのfunctions.phpファイルはwp-content → themes → yourtheme にあります。
子テーマのfunctions.phpファイルを探している場合は、 wp-content → themes → yourtheme-child で見つけることができます。
探しているfunctions.phpファイルが見つかったら、 functions.phpを右クリックして [ダウンロード] をクリックするか、 functions.phpをシングルクリックして、トップ メニューから [ダウンロード] オプションをクリックします。

ファイルを保存するときに名前を変更した場合は、再アップロードする前に必ずfunctions.phpに名前を戻してください。 functions.phpに変更を加えて上書きする前に、WordPress サイトをバックアップしてください。
WordPress でfunctions.phpを編集する必要があるのはいつですか?
functions.phpの編集方法に飛び込む前に、編集する必要があるかどうか、いつ編集する必要があるかについて説明する必要があります。 WordPress で PHP コードを編集したい理由はたくさんありますが、そのコードをfunctions.phpファイルに追加することが常に最良の選択肢であるとは限らず、以下で説明する特定の状況でのみ行う必要があります。
WordPress コアでfunctions.phpを編集するタイミング
一度もない。 WordPress コアでfunctions.phpを編集しないでください。 せいぜい、破損していることが判明した場合は置き換えることができますが、WordPress コアfunctions.phpのコードを削除または追加すると、サイトが壊れる可能性があります。 したがって、それを開いて検査し、必要に応じて新しいコピーに置き換えることができますが、ライブ Web サイトをいじらないでください。
テーマでfunctions.phpを編集するタイミング
テーマのfunctions.phpファイルに関しては、編集する必要がある場合とない場合があります。 独自のテーマを作成している場合は、ほとんどの場合、カスタム コードをfunctions.phpに追加する必要があります。 ほぼすべてのテーマのfunctions.phpファイルには、独自の機能セットを提供するコードが含まれています。 スタイルシートに加えて、これらの関数は、あるテーマを別のテーマとは異なるものにする大きな部分を占めています。
テーマのfunctions.phpファイルに、テーマに固有ではなく、テーマとは独立して使用できるコードを追加する場合は、代わりにプラグインにすることを検討してください。 このようにして、その機能を複数のテーマで使用したり、WordPress.org プラグイン ライブラリに送信したりして、他の WordPress ユーザーに役立つ可能性があります.
プラグインを作成する前に、プラグイン ライブラリをチェックして、作成しているものがまだ存在していないことを確認してください。 質の高いソリューションが既に存在する場合は、サイトの別のカスタム機能のために開発エネルギーを節約したいと思うかもしれません。
子テーマでfunctions.phpを編集するタイミング
開発者のテーマを使用していて、 functions.phpファイルを変更したい場合は、常に子テーマを使用してそれらの変更を行う必要があります。 テーマ開発者がテーマの新しいバージョンを発行し、最新のものに更新すると、現在のテーマはfunctions.phpを含む新しいファイルによって上書きされます。
子テーマは親テーマの更新の影響を受けないため、子テーマのfunctions.phpファイルを変更しても、すべてのカスタム コードを保持できます。
コードを追加する前に、プラグインを使用する方がより良い解決策になるかどうかを検討してください。 追加するコードはテーマに固有のものですか? 子テーマのfunctions.phpファイルを編集します。 追加するコードは、将来テーマを変更した場合に保持したいものですか (例: Google Analytics トラッキング コードまたは Facebook ピクセル)? プラグインを使用します。
WordPress でfunctions.phpを編集する方法
functions.phpの編集中に発生する可能性のある間違いからサイトを保護するための措置を常に講じる必要があります。 したがって、編集を開始する前に、サイトをバックアップし、ステージング サイトを作成して最初にテストすることを検討してください。 これにより、誤ってfunctions.phpにコードを追加して重大な問題が発生したり、さらに悪いことにサイトが完全にクラッシュしたりした場合でも、ライブ サイトが中断されることはありません。
サイトのバックアップが完了したので、 functions.phpファイルの編集に進むことができます。
WordPress テーマ ファイル エディターでfunctions.phpを編集する方法
WordPress テーマ ファイル エディターでfunctions.phpを編集するのは少し危険です。 cPanel または SFTP にアクセスできないためにこのツールを使用している場合、編集によって致命的なエラーが発生し、WordPress ダッシュボードにアクセスできなくなると、かなり悪い状況になります。
テーマ ファイル エディターでfunctions.phpを編集する場合は、バックアップ ファイルをすばやく復元できるように、サーバーとバックアップに直接アクセスできることを確認してください。
WordPress テーマ ファイルエディターは、WordPress 管理パネルの [外観] → [テーマ ファイル エディター] の下にあります。
テーマの編集画面が表示されます。ここで子テーマを選択し、画面右側のテーマ ファイル列からfunctions.phpファイルを選択します。

代わりに親テーマを選択した場合は、画面の下部に「注意:これは現在の親テーマのファイルです」という警告が表示されます。 親テーマのfunctions.phpファイルを編集したくない場合は、次にテーマを更新するときに変更が上書きされるためです。
ファイル内に理解できない関数がある場合、WordPress には[ファイルを更新] ボタンのすぐ上に便利なドキュメント検索機能が含まれています。 ドロップダウンをクリックして、詳細を知りたい関数名を検索し、 Look Upをクリックします。 その機能については、WordPress.org のドキュメントが表示されます。
変更が完了したら、[ファイルを更新] をクリックします。 サイトのフロントエンドとバックエンドをチェックして、すべてが意図したとおりに機能していることを確認してください。 致命的なエラーが発生し、バックアップからfunctions.phpを復元する必要がある場合は、cPanel または SFTP を使用して復元できます。
テキストエディタでfunctions.phpを編集する
functions.phpを編集する最良の方法は、選択したコード編集ソフトウェアを使用することです。 ローカル コンピューターでオフラインのコピーを編集しているため、ファイルを操作するためにインターネットに接続する必要はありません。 また、ライブ サイトに変更をコミットするタイミングをより詳細に制御できます。
いつでもコードを編集し、Web サイトのトラフィックが通常最も少ないときに変更をアップロードできます。 そうすれば、問題が発生した場合でも、影響を受ける訪問者の数が最小限に抑えられます。
ステップ 1: functions.phpをテキスト エディターで開きます。 テキスト エディターの使用に慣れていない場合は、いくつかの無料のオプションから選択できます。
無料のソース コードとプレーン テキスト エディター:
応用 | システム |
メモ帳++ | ウィンドウズ |
Atom.io | ウィンドウズ、マック、リナックス |
荘厳な | ウィンドウズ、マック、リナックス |
テキスト編集 *プレーンテキストモードであることを確認してください | Mac (デフォルトのアプリケーション) |
メモ帳 | Windows (デフォルトのアプリケーション) |
ステップ 2: functions.phpを編集し、ローカル マシンに保存します。 functions.phpファイルの編集に使用するプログラムによって、表示が異なる場合があります。 これは、atom.io での PHP コードの外観です。

必要な情報を追加または変更してから、ファイルを保存します。
ステップ 3: SFTP または cPanel 経由で Web サーバーにログインします。 テーマまたは子テーマ フォルダーに移動し、 functions.phpファイルを見つけます。
ステップ 4: Web サーバー上のfunctions.phpのファイル名を変更します。 編集したバージョンにエラーが含まれている場合、元のfunctions.phpファイルを上書きしたくありません。 もちろん、バックアップを作成しましたが、バックアップからfunctions.phpファイルを取得する代わりに、元のファイルを手元に置いておくことができます。
何か問題が発生した場合にfunctions.phpファイルをすばやく復元できるようにしたいので、 「functions-orginal.php」などの名前に名前を変更すると、元のファイルの内容がサーバーに保持されます。

ステップ 5: functions.phpをローカル マシンから Web サーバーにアップロードします。 SFTP または cPanel を使用して、 functions.phpファイルをテーマまたは子テーマのメイン ディレクトリにアップロードします。
ステップ 6: ウェブサイトにアクセスして、正しく機能していることを確認します。 functions.phpファイルをアップロードしたら、サイトですべてが機能していることを確認する必要があります。 フロントエンドにアクセスし、WordPress ダッシュボードにログインして、すべてがアクセス可能であり、正しく表示および機能していることを確認してください。
ステップ 7: 名前が変更された古いfunctions.phpファイルを削除します。 サイトが正常に機能していることを確認したら、 functions-original.php (または名前を変更したもの) を削除できます。 途中で問題が見つかった場合でも、作成したバックアップからfunctions.phpファイルが残っているはずです。
cPanelで直接functions.phpを編集する
ソース コード エディターを持っていない、または使用したくない場合は、cPanel で直接functions.phpを編集できます (ホストが cPanel を使用している場合)。 WordPress テーマ ファイル エディターでの編集と同様に、ローカル マシンで作業するよりも少し危険です。 編集中にインターネット接続が中断されると、変更内容が失われる可能性があります。 また、元のfunctions.phpファイルを上書きする可能性があるというリスクもあります。
ステップ 1: cPanel でfunctions.phpを見つけます。 cPanel で、[ファイル マネージャー] をクリックします。
ルート フォルダーに移動します (通常はpublic_htmlまたはwwwですが、別の名前にすることもできます)。
ステップ 2: functions.phpのコピーを作成します。 ファイル マネージャーのメイン メニューで、[ + フォルダー] をクリックして新しいフォルダーを追加します。 functions.phpファイルのコピーを作成し、バックアップとしてここに保存します。
後で簡単に見つけられるように、新しいフォルダーに「バックアップ機能」などの識別しやすい名前を付けます。 [新しいフォルダーの作成]をクリックします。


ステップ 3: テーマまたは子テーマ フォルダーでfunctions.phpを見つけて、バックアップ フォルダーにコピーします。 テーマまたは子テーマ フォルダーで、 functions.phpまで下にスクロールし、ファイル名を右クリックします。 [コピー]を選択します。

ファイルのコピー先のパスを入力するよう求めるダイアログ ボックスが表示されます。 現在のフォルダーへのパスは事前に設定されているため、バックアップ フォルダーへのファイル パスが表示されているものと異なる場合は、正しいパスを入力してください。 [ファイルのコピー]をクリックします。
ステップ 4:テーマまたは子テーマ ディレクトリのfunctions.phpに戻ります。 これでバックアップが作成されたので、テーマまたは子テーマのディレクトリにあるfunctions.phpファイルに戻って編集を開始できます。
functions.phpを右クリックし、[編集] をクリックします。
ステップ 5: functions.phpを編集します。 functions.phpファイルの内容が画面に表示されます。 次のようになります。

必要な情報を追加または変更してから、ファイルを保存します。
プラグインを使用して WordPress サイトに機能を追加する
functions.phpファイルを直接変更する代わりに、コード スニペットなどのプラグインを使用して Web サイトに関数を追加できます。 サイトにかなりの数の機能を追加する必要がある場合、まだ必要な機能と不要な機能を見失いがちです。
コード スニペットは、PHP コードのブロックを管理するためのグラフィカル ユーザー インターフェイス (GUI) を提供します。 プラグインの有効化と無効化のように、コードが何をすべきかを理解できるように説明を追加し、コードのブロックをオンまたはオフにすることができます。
functions.phpに変更を加えていないため、WordPress サイトに PHP 関数を追加するより安全な方法です。
functions.phpをセキュリティ エクスプロイトから保護する方法
functions.phpファイルはハッカーの標的になることが多いため、ファイルを安全に保つことは最優先事項です。 functions.phpファイルを保護するには、次の手順を実行します。
1. セキュリティ プラグインをインストールする
セキュリティ プラグインを使用することで、サイトの複数の領域にわたってハッカーから高度な保護を享受できます.
Jetpack セキュリティは、サイトを悪意のある攻撃から保護するのに役立つ安価なオプションです。 これには、マルウェア スキャンとワンクリック修正、ブルート フォース攻撃保護、ダウンタイム モニタリング、サイトがハッキングされたかどうかといつハッキングされたかを知るためのアクティビティ ログ、および 2 要素認証 (2FA) によるログイン保護が含まれます。

また、Jetpack Security はサイトを監視して、WordPress のコア ファイルへの変更、古いプラグインや安全でないプラグイン、その他の脆弱性を見つけて、ハッカーがそれらを見つけて悪用する前にそれらをキャッチできるようにします。
さらに、WordPress のリアルタイム バックアップが提供されるため、サイトにログインできない場合でも、問題が発生した場合にクリーン バージョンをすばやく復元できます。
2. 経由で WordPress コアfunctions.phpへのアクセスを拒否します。 htaccessファイル
Web サイトが Apache サーバーでホストされている場合は、. htaccessファイルを使用して、 wp-includesフォルダー全体へのアクセスをブロックすることで、WordPress のコアfunctions.phpファイルを保護します。
ステップ 1: .htaccess をダウンロードする
SFTP または cPanel を使用して、Web サイトのルート フォルダーに移動します。 を右クリックします。 htaccessに移動し、[ダウンロード] を選択して、ファイルをローカル コンピューターにダウンロードします。
ステップ 2: wp-includesフォルダーへのアクセスをブロックするコードを追加する
ソース コードまたはプレーン テキスト エディターで、 を開きます。 htaccessに次のコードを追加します。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>
ファイルを保存します。 エディター プログラムにファイル拡張子が含まれていないことを確認してください。 Notepad++ または Text Edit を使用している場合は、.txt ファイル拡張子が追加されることがあります。 ファイルの名前は単に「.htaccess」にする必要があります。
ステップ 3: 編集した をアップロードします。 htaccessをルート フォルダに戻す
編集した をアップロードします。 htaccessファイルを Web サイトのルート フォルダーに戻します。 既存のファイルを上書きするかどうかを尋ねられます。 [ OK]をクリックします。
今あなたの。 htaccessファイルは、 functions.phpを含むwp-includesフォルダー内のすべてのファイルへの外部アクセスをブロックする必要があります。
3. functions.phpを使用してfunctions.phpへのアクセスを拒否する
次のコード スニペットを直接functions.phpに追加することで、 functions.phpファイルへの直接アクセスをブロックできます。
if (!empty($_SERVER['SCRIPT_FILENAME']) && 'functions.php' == basename($_SERVER['SCRIPT_FILENAME'])) { die ('Access denied!'); }
4. ルート ディレクトリの外にfunctions.phpを隠す
ハッカーは、すべての標準 WordPress ファイルのデフォルトの場所を知っています。 機密ファイルの場所をルート ディレクトリ外のアクセス制限付きフォルダーに変更すると、ハッカーの手の届かない場所に保管できます。 このプロセスは、単にコードを.htaccessファイルに追加するよりも少し複雑ですが、Web サイトの保護レイヤーを追加するために余分な労力を費やす価値があります。
ほんの数ステップで、ルート フォルダーの外にあるfunctions.phpを保護できます。
ステップ 1 : 現在のfunctions.phpファイルをダウンロードする
テーマのfunctions.phpファイルを移動する場合は、 wp-content → themes → yourtheme の下にあります。 子テーマのファイルはwp-content → themes → yourtheme-child にあります。
functions.phpファイルを見つけたら、SFTP または cPanel 経由でコンピューターにダウンロードします。
ステップ 2 : ルート フォルダーの外に新しいディレクトリを作成する
ルート ディレクトリの外に出て、次のファイル フォルダー レベルに移動します。 ルート フォルダの名前と他のいくつかのフォルダが表示されます。 このディレクトリで、右クリックして [ Create directory ] を選択します。

functions.phpファイルの場所として覚えやすい名前をディレクトリに付けます。
ステップ 3: functions.phpを新しいフォルダーにアップロードします。
以前にダウンロードしたfunctions.phpファイルを、SFTP または cPanel 経由で新しいフォルダーにアップロードします。

新しいフォルダーとfunctions.phpファイルのアクセス許可を確認し、それらが 600 に設定されていることを確認します。

ステップ 4 : WordPress に新しいfunctions.phpファイルを指定する
テーマ フォルダーに残っている元のfunctions.phpファイルだけでなく、新しいディレクトリにもfunctions.phpファイルが必要です。 WordPress が正しいファイルを見つけて使用できるようにするには、テーマ ファイルのfunctions.phpファイルと次のコード スニペットのすべての情報を削除する必要があります。
<?php include('/home3/usr/securefunctions/functions.php'); ?>
注:サーバーのディレクトリ名を使用するため、ファイル パスは異なります。
cPanel では、ルート ディレクトリのfunctions.phpファイルを開いて直接編集するか、ソース コード エディターを使用してローカル マシンにダウンロードしたコピーを編集することができます。 この例では、Atom.io を使用して以前にダウンロードしたコピーを編集しました。
funtions.phpファイルを保存し、テーマ ディレクトリにアップロードして戻します。

ファイルを上書きするかどうか尋ねられます。 [ OK]をクリックします。
これで、WordPress はルート フォルダーの外の安全な場所にある新しいfunctions.phpファイルを参照する必要があります。
4. functions.phpファイルの名前を変更します
functions.phpファイルの名前を変更することは、ハッカーからファイルを保護するためのもう 1 つのステップです。 このファイルはルート フォルダーの外でホストする必要があるため、ルート ディレクトリの外でfunctions.phpを非表示にする のプロセスに従っている場合は、いくつかの追加手順を実行するだけで済みます。
ステップ 1: ルート フォルダーの外にある安全なディレクトリで、 functions.phpのファイル名を変更します。
ルート ディレクトリの外でホストされているfunctions.phpフォルダーに移動し、ファイル名を「keep-out.php」や「these-are-not-the-functions-you-are- looking-for」などの一意の名前に変更します。 php' . 最後の部分は少し長いですが、 functions.phpのテーマ フォルダー コピーのファイル パスに含める限り、名前は何でもかまいません。
ステップ 2: 名前の変更を反映するために、ルート ディレクトリのfunctions.phpのコードを編集します。
名前をfunctions.php 以外に変更したので、functions.phpのテーマ ディレクトリのコピーが正しいファイル名を指していることを確認する必要があります。
functions.phpのルート フォルダーのコピーをローカル コンピューターにダウンロードし、テキスト エディターで編集します。 functions.phpファイル名を新しいファイル名に変更し、ファイルを保存します。
<?php include('/home3/usr/secureconfig/keep-out.php'); ?>
ステップ 3: functions.phpをテーマ ディレクトリにアップロードします。
既存のファイルを上書きするかどうかを尋ねられます。 [ OK]をクリックします。
これで、WordPress は名前が変更された関数ファイルを指すようになります。
functions.phpのセキュリティの追加レイヤー
名前を変更したり、ルート ディレクトリの外でホストしたり、パブリック アクセスを拒否したりするなど、 wp-configファイルに同様の変更を加えることで、 functions.phpファイルを含む Web サイト全体に追加の保護を追加できます。
functions.phpファイルに疑わしいコードがあり、すでにハッキングされているのではないかと心配している場合は、WordPress Web サイトからマルウェアを検出して削除する方法を確認してください。
WordPress のfunctions.phpに追加できるコードは何ですか?
WordPress functions.phpファイルに追加できるさまざまなコード スニペットが多数あります。 ただし、多くの機能に対してプラグインを使用する (または独自のプラグインを作成する) ことで、より適切に機能することがよくあります。 追加したいコードがテーマに固有のものである場合、その PHP コードを子テーマのfunctions.phpファイルに追加できます。
以下は、子テーマのfunctions.phpファイルに挿入できる便利な関数の一部です。
functions.phpに新しい管理者ユーザーを追加する
WordPress ダッシュボードへの管理者アクセス権を失い、メールでユーザー名またはパスワードを復元できない場合は、ホスティング アカウントから新しい管理者ユーザーを作成できます。 SFTP または cPanel を介して、 functions.phpファイルをダウンロードし、次のコードを追加してサイトの新しい管理者ユーザーを作成できます。
function qode_add_new_admin_account() { $user = 'your-username'; $password = 'your-password'; $email = 'your-email'; if ( ! username_exists( $user ) && ! email_exists( $email ) ) { $user_id = wp_create_user( $user, $password, $email ); $user = new WP_User( $user_id ); $user->set_role( 'administrator' ); } } add_action( 'init', 'qode_add_new_admin_account' );
上記のコードで、「your-username」、「your-password」、および「your-email」を独自の資格情報に置き換えます。 functions.phpファイルを保存し、テーマ フォルダーに再アップロードします。 これにより、コードで割り当てたユーザー名、パスワード、および電子メール アドレスを持つ新しい管理者ユーザーが作成されます。
ファイルをアップロードしたら、サイトのログイン ページに移動し、新しいユーザー名とパスワードを使用してログインします。ログインに成功し、管理者権限があることを確認したら、追加したコードを削除する必要があります。 functions.phpから新しい管理者アカウントを作成します。
functions.phpでの画像サイズの追加と削除
画像を WordPress メディア ライブラリにアップロードすると、画像の複数のバリエーションが生成されます。 WordPress には、フルサイズの画像に加えて使用されるデフォルトのサムネイル、小、中、大のサイズがあります。 テーマは通常、サイトの個々の部分に最適な画像サイズを引き出します。
独自のテーマを作成している場合、または追加のカスタム画像サイズに対応するために子テーマを変更する必要がある場合は、 functions.phpファイルで行うことができます。
次のコードを使用して、カスタム イメージ サイズの名前を「custom-small-square」および「custom-landscape」から任意の名前に変更します。 カスタム画像サイズ名の横の数字は画像サイズをピクセル単位で表しているため、最初に幅、次に高さのピクセル値を入力してください。
function register_custom_image_sizes() { if ( ! current_theme_supports( 'post-thumbnails' ) ) { add_theme_support( 'post-thumbnails' ); } add_image_size( 'custom-small-square', 450, 450, true ); add_image_size( 'custom-landscape', 1000, 600 ); } add_action( 'after_setup_theme', 'register_custom_image_sizes' );
Keep in mind that additional custom image sizes can weigh down your site and impact load times. If you have some WordPress default image sizes that your theme doesn't use, you may want to delete and disable those to make room for your custom sizes.
If you want to disable WordPress default image sizes, you can place this code snippet into your functions.php file:
add_filter( 'intermediate_image_sizes_advanced', 'prefix_remove_default_images' ); // This will remove the small, medium, and large default image sizes. function prefix_remove_default_images( $sizes ) { unset( $sizes['small']); // 150px unset( $sizes['medium']); // 300px unset( $sizes['large']); // 1024px return $sizes; }
If you only need to disable one or two sizes, you can only add those sizes to the code above and delete the code that you don't need.
Use functions.php to allow additional file types in uploads
WordPress only allows a few different file types to be uploaded in your WordPress dashboard. This is a reasonable security measure, but you might encounter a situation where you need to upload a file type that's not natively allowed.
To add more allowed file types to WordPress, add the following code to your child theme's functions.php :
function additional_upload_file_types($mime_types){ $mime_types['stl''] = 'application/sla'; $mime_types['stl'] = 'application/vnd.ms-pki.stl'; $mime_types['stl'] = 'application/x-navistyle'; return $mime_types; } add_filter('upload_mimes', 'additional_upload_file_types', 1, 1);
For the above example, we used the stl file type, which is a CAD file type. It's an unusual file type to upload to a website outside of certain niche industries, but if your site is for an industrial designer, engineering firm, or even an orthodontics lab, you might find the ability to upload STL files really useful.
You can replace the $mime_type variable with whatever file extension suits the needs of your website. You'll also need to include the media type and subtype after that (eg 'application/sla' or 'image/octet-stream'). Here's a complete list of mime types that you can refer to.
Frequently asked questions about editing the functions.php file in WordPress
We've covered what the functions.php file is, how to find functions.php , how to access it, how to edit it, and a few code snippets you can add to your functions.php file. We'll wrap things up with a few helpful answers to frequently asked questions.
Do I really need to use a child theme to edit functions.php ?
簡単な答えは? はい。
If you're a theme developer, you'll definitely want to add your theme-specific functions directly to your theme's functions.php file. If you're modifying a theme from another developer that will get regular updates, however, you'll absolutely want to use functions.php within a child theme.
Most theme developers will periodically make updates to their themes for security and performance reasons, or to add new features. If you change the parent theme's functions.php file, those changes will all be overwritten when you update to your theme's latest version. All your hard work and customizations — poof! Gone.
Child themes aren't touched when the parent theme updates, so if you make changes to your child theme's functions.php file, your changes will be preserved any time you update your parent theme.
I edited functions.php and now I don't have access to my WordPress dashboard. ヘルプ!
In the unfortunate event that you edited the functions.php file and caused a critical error on your site that kept you from accessing the WordPress dashboard, don't worry — all is not lost!
There are a few things you can do to restore access to your site. You can edit functions.php via SFTP and a text editor or directly in cPanel if you know which bit of code caused the issue. Alternatively, you can restore functions.php from a backup or download a fresh copy of functions.php from your theme developer.
I know what code I messed up. I just need to access and edit functions.php to fix it.
See How to edit functions.php above for instructions on how to access and edit your theme or child theme's functions.php file.
I have no clue what I did to my functions.php file, but I have a backup.
If you have a backup on hand, you can access your files either on your web host's server or your remote server (depending on where you have opted to store these files), and use them to replace your corrupt functions.php file via SFTP or cPanel.
If you feel more comfortable restoring your entire site backup rather than trying to restore just the functions.php file, our article, “How to Restore WordPress from a Backup” goes in depth on the different methods you can use to restore your WordPress site.
I have no idea what code caused the problem and I didn't make a backup.
If you don't have a backup, you can download a fresh copy of the theme you're using from your theme developer, extract the functions.php file, and overwrite the broken functions.php file on your server via SFTP or cPanel.
Note: If you're using a theme that hasn't been updated in awhile, you may encounter issues in overwriting functions.php with a version that's from a much more recent update. If you encounter issues, you might be better off just manually updating your entire theme to the latest version. Alternatively, you can contact your theme developer to get the theme files for your current version and use that version of functions.php .
Can I add JavaScript to my functions.php file?
Yes, you can add code to your functions.php file that will add your custom JavaScript to either specific pages, posts, or all pages and posts on your site. This article covers all the different ways you can add JavaScript to your functions.php file.