【WordPress】functions.phpについて

WordPressのテーマをカスタマイズしていると、「functions.php」というファイルを目にすることがあります。
functions.phpは、WordPressに機能を追加したり、テーマの動作を変更したりする際に使用するPHPファイルです。
今回は、そのfunctions.phpとはどのようなファイルなのか、また、どのような場面で使用するのかについて簡単に説明していきます。

■functions.phpとは

functions.phpは、WordPressのテーマに用意されているPHPファイルの一つです。
テーマには、Webサイトの見た目を決めるCSSや、ページを表示するためのPHPファイルなど、さまざまなファイルが含まれています。その中でもfunctions.phpは、テーマに機能や処理を追加するために使用されます。
例えば、以下のような処理をfunctions.phpに記述することができます。

  • WordPressに独自の機能を追加
  • 管理画面のカスタマイズ
  • CSSやJavaScriptを読み込む
  • 自作関数の定義
  • 自作ショートコードの登録

このように、functions.phpを利用することでテーマに機能を追加したり、WordPressの動作をカスタマイズすることができます。

■functions.phpに処理を追加する

ここでは、functions.phpに実際に処理を追加する例を紹介します。
例えば、テーマ内にある”css/custom.css”というCSSファイルを読み込みたい場合、functions.phpに以下のように記述します。

[/crayon]

“wp_enqueue_style()”を使ってCSSファイルを読み込み、”add_action()”で処理を実行するタイミングを指定しています。
このように、”functions.php”ではWordPressが用意している関数やフックを利用して、さまざまな処理を追加することができます。

■functions.phpを編集する際の注意点

functions.phpは便利なファイルですが、PHPの記述を間違えるとWordPressが正常に動作しなくなる場合があります。
そのため、functions.phpを編集する前にバックアップを取っておくと安心です。
また、テーマのfunctions.phpを直接編集する際も注意が必要です。
テーマを更新すると編集した内容が上書きされてしまう場合があります。そのため、テーマをカスタマイズする際は、子テーマを利用するなどしてテーマを更新した後も変更した内容が残るようにしておくことが重要です。

■functions.phpとプラグインの違い

WordPressに機能を追加する方法として、functions.phpのほかにプラグインを利用する方法があります。
functions.phpは、基本的に現在使用しているテーマに機能を追加するために使用します。一方、プラグインはテーマとは別に機能を追加することができます。そのため、テーマを変更した後も使用したい機能については、プラグインとして追加するほうが適している場合があります。追加したい機能がテーマに関係するものなのか、テーマを変更しても必要なものなのかを考えて、使い分けることが重要です。

■最後に

今回は、WordPressのfunctions.phpについて簡単にまとめました。
functions.phpを利用することで、CSSやJavaScriptの読み込みをはじめ、WordPressにさまざまな機能を追加することができます。
また、functions.phpではWordPressのフックや関数を利用することが多いため、WordPressをPHPでカスタマイズする際には、覚えておきたいファイルの一つです。
ただし、記述を間違えるとサイトの動作に影響する可能性があるため、編集する際にはバックアップを取るなど、注意して作業することが大切です。


【WordPress】フックについて

今回は、WordPressの「フック」について簡単に説明します。
WordPressでPHPを使ってカスタマイズを行う際には、フックを利用することが多くあります。フックにはいくつか種類がありますが、今回は基本となる「アクションフック」と「フィルターフック」について説明します。

■フックとは

フックとは、WordPressの処理に自分の用意した処理を追加したり、既存の値を変更したりするための仕組みです。
WordPressには、ページの表示や記事の登録など様々なタイミングでフックが用意されています。そのため、WordPress本体のファイルを直接編集しなくても「functions.php」などから独自の処理を追加することができます。
フックは大きく分けて以下の2種類があります。

  • アクションフック
  • フィルターフック

それぞれ役割が異なるため、用途に応じて使い分けます。

■アクションフック

アクションフックは、WordPressの特定の処理が実行されるタイミングで、自分で用意した処理を実行するために使用します。
例えば、ページのフッター部分にメッセージを追加する場合は、以下のように記述します。

[/crayon]

“wp_footer”は、ページの下部で処理を実行するためのアクションフックです。
この例では、”add_action()”を使って”my_footer_message()”を登録しているため、フッターが表示されるタイミングでメッセージが表示されます。
このように、「あるタイミングで処理を実行したい」という場合にアクションフックを使用します。

■フィルターフック

フィルターフックは、WordPressが扱っている値を変更したい場合などに使用します。
例えば、記事の本文の最後に「この記事を読んでいただきありがとうございました。」という文章を追加する場合は、以下のように書くことができます。

[/crayon]

この例では、”add_filter()”を使って”my_add_message()”という関数を”the_content”に登録しています。
“the_content”は、記事の本文を扱うためのフィルターフックです。
“my_add_message()”では、引数として受け取った記事本文に文章を追加し、変更後の本文を”return”しています。そのため、記事を表示すると、もともとの本文に「この記事を読んでいただきありがとうございました。」という文章が追加されます。
このように、「WordPressが扱っている値を受け取り、内容を変更して返したい」という場合にフィルターフックを使用します。

■アクションフックとフィルターフックの違い

2つの違いを簡単にまとめると、以下のようになります。

種類用途
アクションフック特定のタイミングで処理を実行する
フィルターフックWordPressが扱う値を変更する

例えば、「ページが表示されるタイミングでCSSを読み込みたい」という場合はアクションフックを使用します。一方、「記事の本文を変更したい」という場合はフィルターフックを使用します。
この違いを覚えておくと、フックを使う際にどちらを利用すればよいか判断しやすくなります。

■フックを使うときの注意点

フックを使用するとWordPressのさまざまな処理をカスタマイズできますが、どのフックを使うかによって処理が実行されるタイミングや、扱える値が異なります。そのため、使用する前にそのフックが「いつ実行されるのか」「どのような値を扱えるのか」を確認することが大切です。
また、”functions.php”に処理を追加する場合は、記述を間違えるとサイトの動作に影響する可能性があります。編集する際には、事前にバックアップを取るなど、注意して作業することが重要です。

■最後に

今回は、WordPressのフックについて簡単に説明しました。
フックを利用することで、WordPress本体のファイルを直接編集することなく、独自の処理を追加したり、既存の値を変更したりすることができます。
特に”functions.php”を使ってWordPressをカスタマイズする場合には、アクションフックとフィルターフックを利用する機会が多くあります。
最初は少し分かりにくいかもしれませんが、「処理を追加するならアクション」「値を変更するならフィルター」と覚えておくと分かりやすいと思います。