概要
wp_print_script_tagアクションは、内容が空のscript要素を出力するために使用されます。このアクションは、特定の条件下でJavaScriptのスクリプトを出力するカスタマイズ機能を実装する際に役立ちます。以下は、このアクションがよく使用されるケースの一例です。
- JavaScriptの条件付き読み込みを制御するため。
- 外部スクリプトのヘッダーやフッターへの動的な挿入。
- カスタムスクリプトの生成、例えば、ページごとの設定情報をJavaScriptに埋め込む。
- 特定のプラグインやテーマと統合する際のスクリプトの調整。
- 増減可能なスクリプトの挿入、例えば、トラッキングコードやアナリティクスのスクリプト。
- いくつかの条件に基づいてリソースの読み込みを最適化。
- 効率的なデバッグ情報の表示。
- 特定のユーザー条件に応じて異なるスクリプトを出力。
構文
do_action('wp_print_script_tag', $tag, $src, $deps, $ver, $in_footer);
パラメータ
$tag(string) – script要素を表すタグ。$src(string) – スクリプトのURL。$deps(array) – このスクリプトが依存している他のスクリプトのハンドル。$ver(string) – スクリプトのバージョン番号。$in_footer(bool) – スクリプトをフッターに配置する場合はtrue。
戻り値
戻り値はありません。
関連する関数
使用可能なバージョン
wp_print_script_tagは、WordPress 2.0以降で使用可能です。
コアファイルのパス
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: カスタムスクリプトの追加
add_action('wp_print_script_tag', 'add_custom_script');
function add_custom_script($tag, $src) {
if ($src === 'https://example.com/custom.js') {
// カスタムスクリプトを条件に応じて追加
echo '<script src="' . esc_url($src) . '"></script>';
}
}
説明: 特定のスクリプトURLに対して条件付きでカスタムスクリプトを出力します。
サンプルコード2: スクリプト情報の埋め込み
add_action('wp_print_script_tag', 'embed_script_info');
function embed_script_info($tag, $src) {
if ($src === 'https://example.com/script.js') {
// スクリプト情報をHTMLのdata属性として出力
echo '<script src="' . esc_url($src) . '" data-info="custom-info"></script>';
}
}
説明: 指定したスクリプトにカスタムデータ属性を追加して出力します。
サンプルコード3: フッターにスクリプトを出力
add_action('wp_print_script_tag', 'output_script_in_footer');
function output_script_in_footer($tag, $src) {
if ('footer-script.js' === basename($src)) {
echo '<script src="' . esc_url($src) . '" async></script>';
}
}
説明: 指定したスクリプトをフッターに非同期で出力します。
サンプルコード4: スクリプトのバージョン管理
add_action('wp_print_script_tag', 'versioned_script_output');
function versioned_script_output($tag, $src, $deps, $ver) {
if (strpos($src, 'library.js') !== false) {
echo '<script src="' . esc_url($src) . '?ver=' . esc_attr($ver) . '"></script>';
}
}
説明: ライブラリスクリプトのバージョン番号をURLに付加します。
サンプルコード5: URLの条件付き変更
add_action('wp_print_script_tag', 'conditional_url_change');
function conditional_url_change($tag, $src) {
if ($src === 'https://external.com/external-script.js') {
// URLを内部URLに置き換え
$src = get_home_url() . '/local-script.js';
echo '<script src="' . esc_url($src) . '"></script>';
}
}
説明: 外部スクリプトのURLを内部スクリプトのURLに変更して出力します。