【WordPress】functions.phpを分割して管理する方法 - 用途ごとにファイルを分ける
今回はWordPressのfunctions.phpを分割して管理する方法を説明します。
説明する環境は以下です。
- macOS Catalina v10.15.5
- Visual Studio Code v1.57.0
この記事の目次
functions.phpを分割して管理する方法
WordPressでオリジナルテーマを作成する場合、functions.phpにすべてのコードを書いていくと修正したいコードを探すことが困難になります。用途ごとのファイルを分割して、一括してfunctions.phpに読み込んで管理すれば、コードの検索や修正、エラーの発見が楽です。
フォルダ構成について
説明するフォルダ構成は以下です。
funcというフォルダを作成して、その中に元々functions.phpに書いていたコードを分割していきます。ファイル名は用途に合わせてつけましょう。
|- テーマフォルダ/
|- func/
| |- base.php //基本の設定
| |- javascript.php //JavaScriptの読み込み系
| |- styles.php //styleシートの読み込み系
| |- thumbnail-size.php //サムネイルの設定
| |- …
|
|-images/
|-js/
|- home.php
|- single.php
|- functions.php
|- …
たとえばthumbnail-size.phpであればサムネイルのサイズを指定する内容のみを書きます。
<?php
add_theme_support( 'post-thumbnails' );
add_image_size( 'base-thumbnails', 600, 320, true );
add_image_size( 'news-thumbnails', 456, 312, true );
たとえばstyles.phpならstyleシートの読み込み設定のみを書きます。
<?php
if ( ! is_admin() ) {
function register_style() {
/* 登録の項目*/
wp_register_style( 'style', get_theme_file_uri( '/style.css' ), array(), null );
wp_register_style( 'main', get_theme_file_uri( '/css/style.css' ), array( 'style' ), null );
}
function add_theme_styles() {
/* 装備の項目*/
register_style();
wp_enqueue_style( 'style' );
wp_enqueue_style( 'main' );
}
add_action( 'wp_enqueue_scripts', 'add_theme_styles' );
}
分割したファイルをfunctions.phpに読み込む
ファイルが分割できたら、functions.phpで読み込んでいきます。
今回は以下の4つのファイルを分割したので、それぞれ読み込んでいきます。
- base.php
- javascript.php
- styles.php
- thumbail-size.php
<?php
require_once get_theme_file_path( '/func/base.php' ); //基本の設定
require_once get_theme_file_path( '/func/javascript.php' ); //JavaScriptの読み込み系
require_once get_theme_file_path( '/func/styles.php' ); //styleシートの読み込み系
require_once get_theme_file_path( '/func/thumbnail-size.php' ); //サムネイルの設定
require_onceで読み込むと、同じファイルがすでに読み込まれていれば、重複して読み込まれなくなります。
functions.phpは読み込み専用のファイルにして、具体的なコードはfuncフォルダの中に用途ごとにファイルを作成して書いていく流れになります。
さいごに
今回はWordPressでfunctions.phpを分割して管理する方法について説明しました。ファイルを分割することで、どのファイルに何が書かれているか明確になります。また、エラーが発生したときでもfunctions.phpで読み込んだファイルを1つずつコメントアウトしていけば、どのファイルに問題があるのか判別しやすくなります。