You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress主题如何批量引入CSS/JS文件夹文件,替代逐个添加?

批量引入WordPress主题的CSS与JS文件

一、直接批量遍历目录引入的代码实现

你可以借助PHP的glob()函数遍历指定文件夹下的所有CSS/JS文件,再通过WordPress的内置函数批量注册引入,不用再逐个添加。

批量引入CSS文件

在functions.php中添加这段代码:

function enqueue_all_css_files() {
    // 拿到主题CSS文件夹的服务器物理路径
    $css_dir = get_template_directory() . '/css/';
    // 筛选出所有.css后缀的文件
    $css_files = glob($css_dir . '*.css');
    
    foreach ($css_files as $file) {
        // 把文件名处理成合法的handle(WordPress要求句柄唯一且符合规范)
        $handle = sanitize_title(pathinfo($file, PATHINFO_FILENAME));
        // 生成文件的访问URL
        $file_url = get_template_directory_uri() . '/css/' . basename($file);
        // 用文件修改时间当版本号,自动刷新缓存
        $version = filemtime($file);
        
        wp_enqueue_style($handle, $file_url, array(), $version);
    }
}

批量引入JS文件

同样的思路处理JS文件,还能顺便处理依赖(比如jQuery):

function enqueue_all_js_files() {
    $js_dir = get_template_directory() . '/js/';
    $js_files = glob($js_dir . '*.js');
    
    foreach ($js_files as $file) {
        $handle = sanitize_title(pathinfo($file, PATHINFO_FILENAME));
        $file_url = get_template_directory_uri() . '/js/' . basename($file);
        $version = filemtime($file);
        
        // 如果文件名里包含jquery,就添加jQuery作为依赖,可根据实际需求调整规则
        $dependencies = str_contains(basename($file), 'jquery') ? array('jquery') : array();
        
        // 最后一个true表示把脚本放在页面底部,优化加载顺序
        wp_enqueue_script($handle, $file_url, $dependencies, $version, true);
    }
}

挂载到钩子生效

把上面两个函数挂到wp_enqueue_scripts钩子上:

add_action('wp_enqueue_scripts', function() {
    enqueue_all_css_files();
    enqueue_all_js_files();
});

二、更建议的优化方案:合并压缩文件

虽然批量引入能解决手动添加的麻烦,但35个CSS+26个JS会产生大量HTTP请求,严重拖慢页面加载速度。更合理的做法是:

  • 用Webpack、Gulp这类构建工具,开发时保留拆分的文件方便调试,生产环境自动把多个CSS/JS合并压缩成1-2个文件
  • 合并后只需要引入少数几个文件,既简化代码又大幅提升页面性能

内容的提问来源于stack exchange,提问作者Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:24:33