'/assets/css/reset.css', 'font-awesome' => '/assets/fontawesome/css/all.min.css', 'theme-header-css' => '/assets/css/header.css', 'theme-index-css' => '/assets/css/index.css', // 'animate-css' => '/assets/css/animate.min.css', // 'custom-animations' => '/assets/css/animations.css', // 'scroll-animations-css' => '/assets/css/scroll-animations.css', // 'smooth-scroll-css' => '/assets/css/smooth-scroll.css', 'search-css' => '/assets/css/search.css', 'navigation-menu-css' => '/assets/css/navigation-menu.css', 'footer-css' => '/assets/css/footer.css', // 'video-banner-css' => '/assets/css/video-banner.css', // 移除全局加载,改为按需加载 'products-services-css' => '/assets/css/products-services.css', 'features-css' => '/assets/css/features.css', 'solution-css' => '/assets/css/solution.css', 'block-news-css' => '/assets/css/block-news.css', 'article-display-css' => '/assets/css/article-display.css', 'single-sidebar-css' => '/assets/css/single-sidebar.css', 'simple-carousel-css' => '/assets/css/simple-carousel.css', 'about-timeline-css' => '/assets/css/about-timeline.css', 'social-activities-css' => '/assets/css/social-activities.css', 'business-process-css' => '/assets/css/business-process.css', // 'henghui-core-css' => '/assets/css/henghui-core.css' // 移至页面单独加载 ); foreach ($css_files as $handle => $file_path) { // 在生产环境中跳过文件检查以提高性能 if ((!defined('WP_DEBUG') || !WP_DEBUG) || file_exists($theme_path . $file_path)) { wp_enqueue_style($handle, $theme_url . $file_path, array(), '1.0.0'); } elseif (defined('WP_DEBUG') && WP_DEBUG) { error_log('Missing CSS file: ' . $theme_path . $file_path); } } // 安全加载JavaScript文件 - 优化GSAP和Swiper兼容性 $js_files = array( // 基础库 - 最先加载 // 'smoothscroll' => array('file' => '/assets/js/smoothscroll.min.js', 'deps' => array(), 'ver' => '1.4.10'), // 'smooth-scroll-init' => array('file' => '/assets/js/smooth-scroll-init.js', 'deps' => array('smoothscroll'), 'ver' => '1.0.0'), // GSAP核心库 - 已启用,优化加载顺序 'gsap' => array('file' => '/assets/js/gsap.min.js', 'deps' => array('jquery'), 'ver' => '3.12.2'), 'gsap-scrolltrigger' => array('file' => '/assets/js/ScrollTrigger.min.js', 'deps' => array('gsap'), 'ver' => '3.12.2'), 'gsap-textplugin' => array('file' => '/assets/js/TextPlugin.min.js', 'deps' => array('gsap'), 'ver' => '3.12.2'), // GSAP与Elementor兼容性管理器 - 必须在所有GSAP相关脚本之后加载 'gsap-elementor-compatibility' => array('file' => '/assets/js/gsap-elementor-compatibility.js', 'deps' => array('gsap', 'gsap-scrolltrigger', 'gsap-textplugin'), 'ver' => '1.0.1'), // GSAP与Elementor初始化管理器 - 确保正确的初始化顺序 'gsap-elementor-init' => array('file' => '/assets/js/gsap-elementor-init.js', 'deps' => array('gsap-elementor-compatibility'), 'ver' => '1.0.0'), // 滚动动画系统 - 基于GSAP ScrollTrigger的动画控制器 'scroll-animations' => array('file' => '/assets/js/scroll-animations.js', 'deps' => array('gsap', 'gsap-scrolltrigger', 'gsap-elementor-init'), 'ver' => '1.0.0'), // Elementor调试工具 - 仅在调试模式下加载 'elementor-debug' => array('file' => '/assets/js/elementor-debug.js', 'deps' => array('gsap-elementor-compatibility'), 'ver' => '1.0.0'), // 组件脚本 - GSAP依赖配置,确保兼容性管理器优先加载 // 'video-banner-js' => array('file' => '/assets/js/video-banner.js', 'deps' => array('jquery', 'gsap'), 'ver' => '1.0.0'), // 移除全局加载,改为按需加载 'products-services-js' => array('file' => '/assets/js/products-services.js', 'deps' => array('jquery', 'gsap-elementor-init'), 'ver' => '1.0.0'), 'features-js' => array('file' => '/assets/js/features.js', 'deps' => array('jquery', 'gsap-elementor-init'), 'ver' => '1.0.0'), 'solution-js' => array('file' => '/assets/js/solution.js', 'deps' => array('jquery', 'gsap-elementor-init'), 'ver' => '1.0.0'), 'search-js' => array('file' => '/assets/js/search.js', 'deps' => array('jquery', 'gsap-elementor-init'), 'ver' => '1.0.0'), // 其他独立库 'tinytyper' => array('file' => '/assets/js/tinytyper.min.js', 'deps' => array('jquery'), 'ver' => '1.0.0'), // SimpleCarousel库 - 轻量级轮播组件 'simple-carousel-js' => array('file' => '/assets/js/simple-carousel.js', 'deps' => array('jquery'), 'ver' => '1.0.0'), // 区块组件脚本 'about-timeline-js' => array('file' => '/assets/js/about-timeline.js', 'deps' => array('jquery', 'simple-carousel-js'), 'ver' => '1.0.0'), 'social-activities-js' => array('file' => '/assets/js/social-activities.js', 'deps' => array('jquery', 'simple-carousel-js'), 'ver' => '1.0.0'), 'business-process-js' => array('file' => '/assets/js/business-process.js', 'deps' => array('jquery'), 'ver' => '1.0.0'), // 'professional-fields-js' => array('file' => '/assets/js/professional-fields.js', 'deps' => array('jquery', 'simple-carousel-js'), 'ver' => '1.0.0'), // 移至页面单独加载 // 'henghui-core-js' => array('file' => '/assets/js/henghui-core.js', 'deps' => array('jquery', 'gsap', 'gsap-scrolltrigger', 'simple-carousel-js'), 'ver' => '1.0.0'), // 移至页面单独加载 // 主题脚本 'dropdown-menu-js' => array('file' => '/assets/js/dropdown-menu.js', 'deps' => array('jquery'), 'ver' => '1.0.0'), 'theme-index-js' => array('file' => '/assets/js/index.js', 'deps' => array('jquery', 'tinytyper'), 'ver' => '1.0.0') ); foreach ($js_files as $handle => $config) { // 调试工具只在调试模式下加载 if ($handle === 'elementor-debug' && !isset($_GET['debug'])) { continue; } // 在生产环境中跳过文件检查以提高性能 if ((!defined('WP_DEBUG') || !WP_DEBUG) || file_exists($theme_path . $config['file'])) { wp_enqueue_script($handle, $theme_url . $config['file'], $config['deps'], $config['ver'], true); } elseif (defined('WP_DEBUG') && WP_DEBUG) { error_log('Missing JS file: ' . $theme_path . $config['file']); } } // 为主题JS文件传递一些有用的数据 wp_localize_script('theme-index-js', 'themeData', array( 'ajaxUrl' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('theme_nonce'), 'themeUrl' => $theme_url )); } add_action('wp_enqueue_scripts', 'load_theme_assets'); /** * 加载后台管理资源 */ function load_admin_assets($hook) { $theme_url = get_template_directory_uri(); // 加载后台CSS wp_enqueue_style('theme-admin-css', $theme_url . '/assets/css/admin.css', array(), '1.0.0'); } add_action('admin_enqueue_scripts', 'load_admin_assets'); /** * 优化资源加载性能 */ function optimize_asset_loading() { // 移除WordPress默认的jQuery,使用我们自己的版本(如果需要) // wp_deregister_script('jquery'); // 添加资源预加载提示 echo ''; echo ''; } add_action('wp_head', 'optimize_asset_loading', 1); /** * 添加资源版本控制 */ function add_asset_version($src, $handle) { // 为本地资源添加文件修改时间作为版本号 if (strpos($src, get_template_directory_uri()) !== false) { // 开发模式下检查文件修改时间,生产模式直接使用主题版本号,减少IO操作 if (defined('WP_DEBUG') && WP_DEBUG) { $file_path = str_replace(get_template_directory_uri(), get_template_directory(), $src); if (file_exists($file_path)) { $version = filemtime($file_path); $src = add_query_arg('v', $version, $src); } } else { // 生产环境使用主题版本号 $theme = wp_get_theme(); $src = add_query_arg('v', $theme->get('Version'), $src); } } return $src; } add_filter('style_loader_src', 'add_asset_version', 10, 2); add_filter('script_loader_src', 'add_asset_version', 10, 2); /** * 条件加载资源 * 根据页面类型加载不同的资源 */ function conditional_asset_loading() { $theme_url = get_template_directory_uri(); // 仅在首页加载特定的动画资源(文件存在时) if (is_front_page() && ((!defined('WP_DEBUG') || !WP_DEBUG) || file_exists(get_template_directory() . '/assets/js/homepage-animations.js'))) { wp_enqueue_script('homepage-animations', $theme_url . '/assets/js/homepage-animations.js', array('gsap'), '1.0.0', true); } // 仅在单篇文章页面加载相关资源(文件存在时) if (is_single() && ((!defined('WP_DEBUG') || !WP_DEBUG) || file_exists(get_template_directory() . '/assets/js/single-post.js'))) { wp_enqueue_script('single-post-enhancements', $theme_url . '/assets/js/single-post.js', array('gsap'), '1.0.0', true); } // 恒辉核心页面专用脚本 if (is_page_template('page-henghui-core.php')) { if ((!defined('WP_DEBUG') || !WP_DEBUG) || file_exists(get_template_directory() . '/assets/js/henghui-core.js')) { wp_enqueue_script('henghui-core-js', $theme_url . '/assets/js/henghui-core.js', array('jquery'), '1.0.0', true); } } } add_action('wp_enqueue_scripts', 'conditional_asset_loading', 20); /** * 内联关键CSS(可选) */ function inline_critical_css() { $critical_css_file = get_template_directory() . '/assets/css/critical.css'; if (file_exists($critical_css_file)) { echo ''; } } // add_action('wp_head', 'inline_critical_css', 2); /** * 资源完整性检查 */ function check_asset_integrity() { // 仅在调试模式下检查,避免生产环境产生不必要的IO开销 if (!defined('WP_DEBUG') || !WP_DEBUG) { return; } $required_assets = array( get_template_directory() . '/assets/js/gsap.min.js', get_template_directory() . '/assets/js/index.js', get_template_directory() . '/assets/css/index.css' ); foreach ($required_assets as $asset) { if (!file_exists($asset)) { error_log('Missing required asset: ' . $asset); } } } add_action('init', 'check_asset_integrity'); ?>