この記事では、WordPressでCSS・JavaScriptを読み込む方法について解説しています。
プラグインでエディタ上に記述する項目を追加することも可能ですが、この作業は比較的簡単なのでプラグインの数をこれ以上増やしたくない人はチャレンジしてみましょう。
目次
functions.phpの編集
使用しているテーマフォルダの直下にあるfunctions.phpに、下記のコードを記述します。
function custom_enqueue_scripts() {
/* ここにファイルを読み込む処理を記述します */
};
add_action('wp_enqueue_scripts', 'custom_enqueue_scripts');
functions.phpCSSの読み込み
CSSを読み込むには、wp_enqueue_styleを使います。
wp_enqueue_style( string $handle, string $src = "", string[] $deps = array(), string|bool|null $ver = false, string $media = ‘all’ );
PHP引数 | 説明 |
---|---|
$handle | 一意の名前を指定。 他ファイルとの依存関係を指定する際に使用される。 |
$src | 読み込むcssファイルまでのパスを指定。 |
$deps | 依存関係にあるファイルを指定。 |
$ver | ファイルのバージョンを指定。 |
$media | メディアタイプを指定。 |
テーマディレクトリ直下にあるstyle.cssを読み込む場合は、以下のように記述します。
function custom_enqueue_scripts() {
wp_enqueue_style('theme-css', get_template_directory_uri() . '/style.css', array(), false, 'all');
};
add_action('wp_enqueue_scripts', 'custom_enqueue_scripts');
functions.phpJavaScriptの読み込み
JavaScriptを読み込むには、wp_enqueue_scriptを使います。
wp_enqueue_script( string $handle, string $src = ”, string[] $deps = array(), string|bool|null $ver = false, array|bool $args = array() );
PHP引数 | 説明 |
---|---|
$handle | 一意の名前を指定。 他ファイルとの依存関係を指定する際に使用される。 |
$src | 読み込むJavaScriptファイルまでのパスを指定。 |
$deps | 依存関係にあるファイルを指定。 |
$ver | ファイルのバージョンを指定。 |
$args | defer・asyncの属性を付与させたい場合は、連想配列のstrategyの値に「defer」または「async」を指定。 スクリプトをフッターに出力させたい場合は、連想配列のin_footerの値に「true」を指定。 |
テーマディレクトリ直下にあるfront.jsを読み込む場合は、以下のように記述します。
function custom_enqueue_scripts() {
wp_enqueue_script('theme-js', get_template_directory_uri() . '/front.js', array(), false, array(
'strategy' => 'defer',
'in_footer' => true
));
};
add_action('wp_enqueue_scripts', 'custom_enqueue_scripts');
PHP応用編
バージョンを指定してキャッシュクリアさせる
CSS・JavaScriptを読み込む際にバージョンを指定しますが、ここで指定したバージョンはURLの末尾に「?ver=バージョン」の形で追加され、キャッシュクリアとして使われます。
ここで指定するバージョンを、テーマのバージョンと紐づけてあげることによって、修正したファイルが複数あった場合でもテーマのバージョンを上げることで一括キャッシュクリアが可能となります。
define('THEME_VERSION', wp_get_theme()->get('Version'));
function custom_enqueue_scripts() {
wp_enqueue_style('theme-css', get_template_directory_uri() . '/style.css', array(), THEME_VERSION, 'all');
wp_enqueue_script('theme-js', get_template_directory_uri() . '/front.js', array(), THEME_VERSION, array(
'strategy' => 'defer',
'in_footer' => true
));
};
add_action('wp_enqueue_scripts', 'custom_enqueue_scripts');
PHPテーマのバージョンは、style.cssにコメントアウトされている「Version」です。
/*
ThemeName: テストテーマ
Version: 1.0.0
*/
CSS