概要
wp_register_script
関数は、WordPressにおけるスクリプトを登録するための関数です。この関数を使用することで、プラグインやテーマにおいて特定のJavaScriptファイルを管理し、必要なタイミングで読み込むことができます。スクリプトの登録は、依存関係を示すことができ、これにより、他のスクリプトと適切に組み合わせて読み込むことが可能です。
よく使われる機能としては、以下のようなものがあります。
- プラグインの管理画面でのJavaScriptの登録
- フロントエンドでのカスタムスクリプトの追加
- AJAX処理のためのスクリプトの登録
- フォームのバリデーション用ライブラリの追加
- ギャラリーやスライドショーのためのjQueryプラグインのロード
- 画像やその他のメディア処理スクリプトの追加
- カスタム投稿タイプの管理に必要なJavaScriptの読み込み
- コードエディターやカスタムタクソノミーとの統合に関するスクリプトの登録
この関数は、WordPressのテーマやプラグインの開発において非常に重要な役割を果たしています。
構文
wp_register_script( $handle, $src, $deps, $ver, $in_footer );
パラメータ
$handle
(string) (必須)スクリプトの一意な名前。$src
(string) (必須)スクリプトファイルのURL。$deps
(array) (任意)依存するスクリプトのハンドル名の配列。$ver
(string|boolean) (任意)スクリプトのバージョン番号(デフォルトはfalse)。$in_footer
(boolean) (任意)スクリプトをフッターに読み込むかを指定(デフォルトはfalse)。
戻り値
この関数は、スクリプトが正常に登録された場合にはnull
を返します。
関連する関数
WordPressバージョン
wp_register_script
関数は、WordPressの初期から存在しており、現在も使用可能です。特定のバージョンで非推奨または削除されたことはありません。
コアファイルのパス
この関数は、wp-includes/script-loader.php
に含まれています。
この関数のアクションでの使用可能性
アクション | 使用可否 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | 〇 |
wp_roles_init | |
setup_theme | |
after_setup_theme | 〇 |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | |
wp | 〇 |
template_redirect | |
get_header | |
wp_head | 〇 |
サンプルコード
サンプルコード 1: フロントエンドのスクリプト登録
function my_custom_scripts() {
wp_register_script('my-script', get_template_directory_uri() . '/js/my-script.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('my-script');
}
add_action('wp_enqueue_scripts', 'my_custom_scripts');
このサンプルでは、テーマディレクトリ内のmy-script.js
ファイルを登録し、jQueryに依存するように設定しています。true
を指定することで、スクリプトがフッターで読み込まれます。
サンプルコード 2: プラグイン内のスクリプト登録
function my_plugin_scripts() {
wp_register_script('my-plugin-script', plugins_url('/js/my-plugin-script.js', __FILE__), array(), '1.0.0', true);
wp_enqueue_script('my-plugin-script');
}
add_action('wp_enqueue_scripts', 'my_plugin_scripts');
この例では、プラグイン内のJavaScriptファイルを登録し、フロントエンドで使用しています。
サンプルコード 3: AJAX用スクリプトの登録
function my_ajax_scripts() {
wp_register_script('my-ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery'), '1.0.0', true);
wp_localize_script('my-ajax-script', 'myAjax', array( 'ajaxurl' => admin_url('admin-ajax.php')));
wp_enqueue_script('my-ajax-script');
}
add_action('wp_enqueue_scripts', 'my_ajax_scripts');
このサンプルでは、AJAXリクエスト用のスクリプトを登録し、ajaxurl
をJavaScriptに渡しています。
サンプルコード 4: カスタム投稿タイプの管理画面用スクリプトの登録
function my_custom_post_type_scripts() {
wp_register_script('my-cpt-script', get_template_directory_uri() . '/js/my-cpt-script.js', array(), '1.0.0', true);
wp_enqueue_script('my-cpt-script');
}
add_action('admin_enqueue_scripts', 'my_custom_post_type_scripts');
このコードは、カスタム投稿タイプの管理画面でのみスクリプトを登録しています。
サンプルコード 5: スクリプトの依存関係を持つ登録
function my_dependent_scripts() {
wp_register_script('my-main-script', get_template_directory_uri() . '/js/main.js', array('jquery', 'my-other-script'), '1.0.0', true);
wp_enqueue_script('my-main-script');
}
add_action('wp_enqueue_scripts', 'my_dependent_scripts');
このサンプルでは、main.js
がjQuery
とmy-other-script
に依存することを示し、両方が先に読み込まれることを保証しています。