如何使用WordPress的 wp_enqueue_script() 和 wp_enqueue_style() 来正确地加载脚本和样式表?

2025-01-12 20 0

在WordPress中,使用 wp_enqueue_script()wp_enqueue_style() 函数是管理前端脚本和样式表的推荐方式。以下是如何使用这些函数来正确加载脚本和样式表的步骤:

加载样式表(CSS)

使用 wp_enqueue_style() 函数可以加载样式表。以下是一个示例:

function my_theme_enqueue_styles() {
    // 注册样式表
    wp_enqueue_style('my-theme-style', get_stylesheet_uri());

    // 如果有额外的样式表,也可以这样加载
    wp_enqueue_style('my-theme-fontawesome', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css', array(), '5.15.3', 'all');
}
add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles');

在这个例子中,my-theme-style 是注册的样式表的标识符,get_stylesheet_uri() 是获取当前主题样式表的函数。对于额外的样式表,如Font Awesome,我们提供了完整的URL、依赖关系数组、版本号和媒体类型。

加载脚本(JavaScript)

使用 wp_enqueue_script() 函数可以加载JavaScript脚本。以下是一个示例:

function my_theme_enqueue_scripts() {
    // 注册脚本
    wp_enqueue_script('my-theme-script', get_template_directory_uri() . '/js/my-script.js', array('jquery'), '1.0.0', true);

    // 如果脚本依赖于其他脚本,可以在依赖数组中添加它们
    wp_enqueue_script('my-theme-plugin', get_template_directory_uri() . '/js/my-plugin.js', array('my-theme-script'), '1.0.0', true);

    // 如果需要在脚本中传递变量,可以使用wp_localize_script()
    wp_localize_script('my-theme-script', 'my_ajax_obj', array(
        'ajax_url' => admin_url('admin-ajax.php'),
        'some_data' => 'Some data to pass to JavaScript',
    ));
}
add_action('wp_enqueue_scripts', 'my_theme_enqueue_scripts');

在这个例子中,my-theme-script 是注册的脚本的标识符,get_template_directory_uri() 是获取当前主题目录的函数,后面跟着脚本的路径。array('jquery') 表示这个脚本依赖于jQuery,'1.0.0' 是脚本的版本号,true 表示脚本应该被放在页面的底部。

注意事项

  • 确保 wp_enqueue_script()wp_enqueue_style() 函数在 wp_enqueue_scripts 动作钩子中被调用。
  • 如果脚本或样式表依赖于其他脚本或样式表,请在依赖数组中指定它们。
  • 使用正确的版本号可以帮助浏览器缓存文件,直到文件内容发生变化。
  • 使用 wp_localize_script() 可以在JavaScript中访问PHP变量。

遵循这些步骤可以帮助你正确地在WordPress中加载脚本和样式表。

相关文章

如何使用WordPress函数update_option()和get_option()来保存和检索插件设置?
在WordPress主题开发中,如何使用is_single(), is_page(), is_archive()等条件标签来显示不同的内容?
在WordPress插件中,如何使用wpdb类来执行自定义数据库查询?
如何使用WordPress的模板标签wp_enqueue_script()和wp_enqueue_style()来管理脚本和样式?
在WordPress主题开发中,如何使用 the_custom_logo() 函数显示自定义网站标志?
如何使用WordPress函数 wp_enqueue_script() 和 wp_enqueue_style() 管理前端资源?