WordPressではプラグインをインストールすると、head内や</body>の直前に独自または外部のcss・javascriptファイルを読み込むタグが挿入される物が多々あります。
普通は気にしなくて良いのですが、サイトの軽量化を考えた時。特定のページでのみ出力し、それ以外の場合は削除する挙動に変更したいプラグイン(例:Contact Form 7)も中にはあるでしょう。
今回は、そのような場合に使えるコード例を紹介しています。
早見表
- wp_register_style()
-
スタイルシートをコアに登録。これだけではフロントエンドには出力されない。
- wp_enqueue_style()
-
スタイルシートをエンキューし、フロントエンドに出力する時に使う関数。
- wp_register_script()
-
スクリプトをコアに登録。これだけではフロントエンドには出力されない。
- wp_enqueue_script()
-
スクリプトをエンキューし、フロントエンドに出力する時に使う関数。
- wp_deregister_style()
-
wp_register_style()
で登録されたcssのみ削除 - wp_dequeue_style()
-
wp_enqueue_style()
で登録されたcssのみ削除 - wp_deregister_script()
-
wp_register_script()
で登録されたjavascriptのみ削除 - wp_dequeue_script()
-
wp_enqueue_script()
で登録されたjavascriptのみ削除
cssを追加
必ず読み込むCSSがある場合はwp_register_style()
を使用して依存関係をWordPressのコアに事前登録します。
フロントエンドに出力(エンキュー)したい時はwp_enqueue_style()
を使う必要があります。
Font Awesome後にスタイルシートを読み込む例
add_action('wp_enqueue_scripts', function () {
// Font Awesomeを登録
wp_register_style(
'font-awesome',
'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css',
[],
'6.4'
);
// 子テーマに保存したスタイルシートにfont-awesomeの依存関係を指定
wp_register_style(
'child-style',
get_stylesheet_directory_uri() . '/style.css',
['font-awesome'],
date('YmdHis', filemtime(get_stylesheet_directory() . '/style.css')),
);
// 上記の記載だけではフロントエンドに出力されません
// フロントエンドに出力したい場合は以下の記載を行う
wp_enqueue_style('child-style');
});
wp_register_style()
にて事前に全てのスタイルシートをコア登録しておけばwp_enqueue_style()
の一行だけで使い回せます。
テンプレートやプラグイン開発をするならばwp_register_style()
を使ってスタイルシートの一元管理を行い、保守性を高めましょう。


javascriptを追加
必ず読み込むjavascriptがある場合はwp_register_script()
を使用して依存関係をWordPressのコアに事前登録します。
フロントエンドに出力(エンキュー)したい時はwp_enqueue_script()
を使う必要があります。
好きなバージョンのjQueryを使いたい時の例
add_action('wp_enqueue_scripts', function () {
// WordPressに登録されているjQueryを削除
// この関数の使い方は後述の解説をお読み下さい
wp_deregister_script('jquery-core');
// 新たに好きなバージョンのjQueryを登録
wp_register_script(
'jquery-core',
'https://code.jquery.com/jquery-3.7.0.min.js',
[],
null
);
// 子テーマに保存したスクリプトにjqueryの依存関係を指定
wp_register_script(
'custom-script',
get_stylesheet_directory_uri() . '/script.js',
['jquery'],
date('YmdHis', filemtime(get_stylesheet_directory() . '/script.js')),
);
// 上記の記載だけではフロントエンドに出力されません
// フロントエンドに出力したい場合は以下の記載を行う
wp_enqueue_script('custom-script');
});
wp_register_script()
にて事前に全てのスクリプトをコア登録しておけばwp_enqueue_script()
の一行だけで使い回せます。
テンプレートやプラグイン開発をするならばwp_register_script()
を使ってスクリプトの一元管理を行い、保守性を高めましょう。


cssやjavascriptを削除
- wp_deregister_style()
-
wp_register_style()
で登録されたcssのみ削除 - wp_dequeue_style()
-
wp_enqueue_style()
で登録されたcssのみ削除 - wp_deregister_script()
-
wp_register_script()
で登録されたjavascriptのみ削除 - wp_dequeue_script()
-
wp_enqueue_script()
で登録されたjavascriptのみ削除
削除する関数はcssとjavascript、共に2つずつ用意されています。
この使い分けはregister
で登録されたファイルか。enqueue
で登録されたファイルか。
この違いだけです。
register
で登録されたスタイルシートやスクリプトはdequeue
の関数では登録削除が出来ません。deregister
でのみ登録削除が可能となっています。
削除したいスタイルシートやスクリプトが、どちらの関数で登録されているのか。適切に判断して使い分ける必要があります。

あとがき

初心者の方であれば、なんで出力する方法が二通り用意されているのか。どっちを使えば良いのか。よく分からないと悩むかもしれません。
そういう時はフロントエンドに出力するenqueue
の方を使って下さい。
functions.php
に記載する、ちょっとしたカスタマイズを行いたいと考えている方もenqueue
の方だけで良いでしょう。
register
の関数は本格的にテーマやプラグインを開発したいと考えている人が使えば良い関数なので、本当によく分からない。とりあえず動いたら良い。という方はenqueue
を使っておけば間違いないです(笑)
しかし何かトラブルが発生した時、今後自分でカスタマイズを好きにサクサクと行いたい!と考えている方であれば、面倒でも本記事にて紹介している関連記事も全て読んで理解を深めると、今後のカスタマイズに必ず役立つと断言できますので、時間がある時にでも読んで下さいね。
コメント