WordPressをカスタマイズする場合、WordPressテーマのfunctions.phpを編集してカスタマイズを実装することがよくあります。
このfunctions.phpは、WordPressテーマの中に存在し、「テーマのための関数」と表示されている場所です。
「テーマのための関数」と表現されているとおり、functions.phpの中で様々な関数を用いてWordPressに特殊な機能を実装することができます。
「add_action」 を呼び出して WordPress にフックアクションフックをつけたり、「add_filter」 フィルターフックを付けたりすることで、WordPressサイトの中で特定条件に合致した場合にアクションやフィルターを起こすことができます。
WordPressのfunctions.phpでアクションフックやフィルターフックを利用する
WordPressテーマのfunctions.phpを編集する
WordPressをカスタマイズするためにテーマ中のfunctions.php(テーマのための関数)を編集する場合には、WordPress管理画面から操作するか、WordPressインストールサーバーにFTPなどで接続し、functions.phpをダウンロードしてローカル環境で修正します。
管理画面でfunctions.phpを選択
WordPress管理画面から操作する場合は、左側に操作メニューが表示されてますので、その中の「外観」から「テーマの編集」を選択し、画面右側に表示されるWordPressテーマファイルのリストの中から「テーマのための関数(functions.php)」を選択します。
functions.phpの編集によって、テーマファイルの中だけでなく、テーマファイルからWordPress本体のソースコードにも手が届くようになるため、WordPress本体に加えたカスタマイズも、WordPressバージョンアップによって上書きされることが無くなります。
functions.phpの編集を誤るとWordPressが真っ白に
functions.phpの編集は、特定ファイルの呼び出しを除外したり、特定のページのみ呼び出すファイルを指定したりと、WordPressをカスタマイズする場合には便利ですが、関数の記述や編集を誤るとWordPress自体が真っ白になるケースがありますので要注意です。
WordPressの内部サーバーエラー(500エラー)を回避するために
WordPressテーマのfunctions.phpは、WordPressの内部システムに大きく影響を与えるため記述を間違えると内部サーバーエラー(500エラー)の原因になります。
こうした場合、WordPressの管理画面にすら入れなくなることもありますので、WordPressをカスタマイズする前の「functions.php」のバックアップとともに、FTP接続などが可能な環境になってから操作したほうが安全です。
こうしておくことで、万が一functions.phpの影響でWordPressが停止した場合でも、FTPソフトで元のバックアップファイルをアップロードして上書きすることでWordPressを500エラーから復旧することできます。
functions.phpの編集でできること
このWordPressテーマの中のfunctions.phpは関数ファイルの集合であり、プラグインのような働きをするphpファイルです。このfunctions.phpを編集することで、WordPress本体やWordPressテーマ、プラグインファイルが吐き出すソースにフィルタをかけたり、新しく機能を追加したりすることができます。
特定箇所に特定の文字列を加えたり、逆にWordPressが自動で生成するタグを非表示にしたりすることができる他、カスタム投稿、カスタム分類の生成やプラグインの制御などを実装することができます。
functions.phpの編集例 アイキャッチ画像の設置
functions.phpの編集例として、例えばアイキャッチ画像機能がないWordPressテーマにアイキャッチ画像を設置できるようするためには、以下の記述をfunctions.phpに追記します。
add_theme_support( ‘post-thumbnails’ );
そして、アイキャッチ画像を反映(表示)させる場所に
<?php the_post_thumbnail(); ?>
を追記します。なお、より細かな設定により様々な画像サイズを設定することができます。
functions.phpの編集例メニュー機能の追加
functions.phpの編集例として、例えばWordPressテーマにメニュー機能がない場合、、以下の記述をfunctions.phpに追記することでメニュー機能を使えるようになります。
add_theme_support( ‘menus’ );
そしてメニューを表示させる場所(header.phpなど)に以下の記述を追記します。
<?php wp_nav_menu(); ?>
WordPressプラグイン更新に備えて
テーマファイルのfunctions.php(テーマのための関数)に、WordPressプラグインに関する設定項目を移し替えておけば、WordPressプラグイン更新時に設定がデフォルトに戻ることを避けることができます。
仕組みとしては、WordPressプラグインが吐き出す部分に対して、functions.phpで上書きする方法です。
こうしておけば、WordPressプラグインのphpファイルを操作してカスタマイズした部分が、プラグインのバージョンアップによって該当ファイルが上書きされた場合でも、設定項目自体はテーマファイルのfunctions.phpで呼び出すので、設定がリセットされることはありません。
テーマファイルの更新や復元時に注意
ただし、こうした仕組みを応用して、WordPressプラグインの設定をfunctions.phpで残しながらWordPressサイト運営を行っていても、WordPressテーマ自体の更新を行い、もしfunctions.phpの部分が上書きされてしまえば、すべての設定は無効になります。
通常テーマファイルの更新では、上書きされることは稀ですが、内部サーバーエラー等からの復旧時に、元のテーマファイルを復元した際に、functions.phpが編集前のものになることがあります。
こうしたことを避けるため、カスタマイズ後のfunctions.php自体もバックアップしておきましょう。
(初回投稿日 2015年10月25日)
WordPressカスタマイズ・修正
ホームページ制作 京都のWeb制作会社ファンフェアファンファーレでは、WordPressで制作されたウェブサイト・ホームページのカスタマイズサービスとして、WordPress(ワードプレス)のテーマ(テンプレート)やプラグインのカスタマイズサービスを提供しております。
WordPressカスタマイズの他、WordPressに関する様々な機能の実装や調整、編集はもちろん、各種エラーの修正・復旧に対応しております。
WordPressでのホームページ制作(WordPressサイト制作)
ホームページ制作 京都 ファンフェアファンファーレでは、ホームページ制作にあたり、WordPressでのホームページ制作(WordPressサイト制作)を推進させていただいております。
企業のWebマーケティングを加速するWordPressでのホームページ制作(WordPressサイト制作)ならお任せください!新規WordPressサイト制作はもちろん、htmlサイトからのホームページリニューアル、WordPressサイトのリニューアルにも対応しています。