'', 'id' => '', 'bg_image' => '', 'height' => '800', 'video_bg_enabled' => 'true', 'video_bg_url' => '', 'video_bg_opacity' => '1.0', 'video_bg_lazy_load' => 'false' ), $atts, 'video_banner'); // 转换字符串布尔值 $video_bg_enabled = filter_var($atts['video_bg_enabled'], FILTER_VALIDATE_BOOLEAN); $video_bg_lazy_load = filter_var($atts['video_bg_lazy_load'], FILTER_VALIDATE_BOOLEAN); // 模拟区块数据 $block = array( 'id' => !empty($atts['id']) ? $atts['id'] : 'video-banner-' . uniqid(), 'className' => $atts['class'] ); // 如果没有提供视频地址,则从customizer获取 $video_bg_url = !empty($atts['video_bg_url']) ? $atts['video_bg_url'] : get_video_banner_background_url(); $bg_image = !empty($atts['bg_image']) ? $atts['bg_image'] : get_video_banner_bg_image(); // 设置自定义器值(模拟) $customizer_values = array( 'video_banner_bg_image' => $bg_image, 'video_banner_height' => intval($atts['height']), 'video_banner_video_bg_enabled' => $video_bg_enabled, 'video_banner_video_bg_url' => $video_bg_url, 'video_banner_video_bg_opacity' => floatval($atts['video_bg_opacity']), 'video_banner_video_bg_lazy_load' => $video_bg_lazy_load, 'video_banner_block_id' => $block['id'], 'video_banner_block_class' => $block['className'] ); // 临时设置全局变量以供模板使用 global $video_banner_shortcode_values; $video_banner_shortcode_values = $customizer_values; // 确保样式和脚本已加载 if (!wp_style_is('video-banner-css', 'enqueued')) { wp_enqueue_style('video-banner-css', get_template_directory_uri() . '/assets/css/video-banner.css', array(), '1.0.0'); } if (!wp_script_is('video-banner-js', 'enqueued')) { // 检查GSAP是否已加载 if (!wp_script_is('gsap', 'enqueued')) { wp_enqueue_script('gsap', get_template_directory_uri() . '/assets/js/gsap.min.js', array(), '3.12.2', true); } // 检查video-banner.js文件是否存在 $video_banner_js_path = get_template_directory() . '/assets/js/video-banner.js'; if (file_exists($video_banner_js_path)) { wp_enqueue_script('video-banner-js', get_template_directory_uri() . '/assets/js/video-banner.js', array('jquery', 'gsap'), '1.0.0', true); } else { error_log('Video banner JS file not found: ' . $video_banner_js_path); } } ob_start(); include get_template_directory() . '/template-parts/block/block-video-banner.php'; $output = ob_get_clean(); // 清理全局变量 unset($video_banner_shortcode_values); return $output; } add_shortcode('video_banner', 'nenghui_video_banner_shortcode'); // 产品服务区块简码 function nenghui_products_services_shortcode($atts) { // 设置默认属性 $atts = shortcode_atts(array( 'class' => '', 'id' => '', ), $atts, 'products_services'); // 模拟区块数据 $block = array( 'id' => !empty($atts['id']) ? $atts['id'] : 'products-services-' . uniqid(), 'className' => $atts['class'] ); ob_start(); include get_template_directory() . '/template-parts/block/block-products-services.php'; return ob_get_clean(); } add_shortcode('products_services', 'nenghui_products_services_shortcode'); // 特性展示区块简码 function nenghui_features_shortcode($atts) { // 设置默认属性 $atts = shortcode_atts(array( 'class' => '', 'id' => '', ), $atts, 'features'); // 模拟区块数据 $block = array( 'id' => !empty($atts['id']) ? $atts['id'] : 'features-' . uniqid(), 'className' => $atts['class'] ); ob_start(); include get_template_directory() . '/template-parts/block/block-features.php'; return ob_get_clean(); } add_shortcode('features', 'nenghui_features_shortcode'); // 解决方案区块简码 function nenghui_solution_shortcode($atts) { // 设置默认属性 $atts = shortcode_atts(array( 'class' => '', 'id' => '', ), $atts, 'solution'); // 模拟区块数据 $block = array( 'id' => !empty($atts['id']) ? $atts['id'] : 'solution-' . uniqid(), 'className' => $atts['class'] ); ob_start(); include get_template_directory() . '/template-parts/block/block-solution.php'; return ob_get_clean(); } add_shortcode('solution', 'nenghui_solution_shortcode'); // 页脚图片区块简码 function nenghui_footer_img_shortcode($atts) { // 设置默认属性 $atts = shortcode_atts(array( 'class' => '', 'id' => '', ), $atts, 'footer_img'); // 模拟区块数据 $block = array( 'id' => !empty($atts['id']) ? $atts['id'] : 'footer-img-' . uniqid(), 'className' => $atts['class'] ); ob_start(); include get_template_directory() . '/template-parts/block/block-footer-img.php'; return ob_get_clean(); } add_shortcode('footer_img', 'nenghui_footer_img_shortcode'); // 新闻区块简码 function nenghui_news_shortcode($atts) { // 设置默认属性 $atts = shortcode_atts(array( 'category' => '', 'posts_count' => 4, 'title' => '新闻资讯', 'subtitle' => 'NEWS', 'class' => '', 'id' => '', ), $atts, 'news'); // 准备传递给模板的参数 $args = array( 'category' => $atts['category'], 'posts_count' => intval($atts['posts_count']), 'title' => $atts['title'], 'subtitle' => $atts['subtitle'] ); // 模拟区块数据 $block = array( 'id' => !empty($atts['id']) ? $atts['id'] : 'news-' . uniqid(), 'className' => $atts['class'] ); // 开始输出缓冲 ob_start(); // 确保变量在模板中可用 extract($args); // 包含模板文件 include get_template_directory() . '/template-parts/block/block-news.php'; // 获取输出内容 $output = ob_get_clean(); // 如果输出为空,返回调试信息 if (empty(trim($output))) { $debug_info = array( '分类参数' => $atts['category'], '文章数量' => $atts['posts_count'], '标题' => $atts['title'] ); $output = '
'; $output .= '

简码调试信息

'; $output .= '

模板输出为空,可能的原因:

'; $output .= ''; $output .= '

当前参数:

'; $output .= '
' . print_r($debug_info, true) . '
'; $output .= '
'; } return $output; } add_shortcode('news', 'nenghui_news_shortcode'); // 社会责任轮播简码 function nenghui_social_activities_shortcode($atts) { // 设置默认属性 $atts = shortcode_atts(array( 'category_id' => 8, 'posts_count' => 6, 'title' => '社会责任', 'slides_per_view' => 3, 'class' => '', 'id' => '', ), $atts, 'social_activities'); // 准备传递给模板的参数 $args = array( 'category_id' => intval($atts['category_id']), 'posts_count' => intval($atts['posts_count']), 'title' => $atts['title'], 'slides_per_view' => intval($atts['slides_per_view']) ); // 模拟区块数据 $block = array( 'id' => !empty($atts['id']) ? $atts['id'] : 'social-activities-' . uniqid(), 'className' => $atts['class'] ); // 开始输出缓冲 ob_start(); // 确保变量在模板中可用 extract($args); // 包含模板文件 include get_template_directory() . '/template-parts/block/black-social-activities.php'; // 获取输出内容 $output = ob_get_clean(); // 动态加载社会活动轮播相关资源 - 使用 Swiper $theme_url = get_template_directory_uri(); $theme_path = get_template_directory(); // 加载 Swiper CSS if (!wp_style_is('swiper-bundle-css', 'enqueued')) { $swiper_css_file = '/assets/css/swiper-bundle.min.css'; if (file_exists($theme_path . $swiper_css_file)) { wp_enqueue_style('swiper-bundle-css', $theme_url . $swiper_css_file, array(), '8.4.5'); } else { error_log('Missing Swiper CSS file: ' . $theme_path . $swiper_css_file); } } // 加载社会活动样式 if (!wp_style_is('social-activities-css', 'enqueued')) { $css_file = '/assets/css/social-activities.css'; if (file_exists($theme_path . $css_file)) { wp_enqueue_style('social-activities-css', $theme_url . $css_file, array('swiper-bundle-css'), '1.0.0'); } else { error_log('Missing CSS file: ' . $theme_path . $css_file); } } // 加载 Swiper JavaScript if (!wp_script_is('swiper-bundle-js', 'enqueued')) { $swiper_js_file = '/assets/js/swiper-bundle.min.js'; if (file_exists($theme_path . $swiper_js_file)) { wp_enqueue_script('swiper-bundle-js', $theme_url . $swiper_js_file, array(), '8.4.5', true); } else { error_log('Missing Swiper JS file: ' . $theme_path . $swiper_js_file); } } // 加载社会活动 Swiper 初始化脚本 if (!wp_script_is('social-activities-swiper-js', 'enqueued')) { $js_file = '/assets/js/social-activities-swiper.js'; if (file_exists($theme_path . $js_file)) { wp_enqueue_script('social-activities-swiper-js', $theme_url . $js_file, array('jquery', 'swiper-bundle-js'), '1.0.0', true); } else { error_log('Missing JS file: ' . $theme_path . $js_file); } } // 如果输出为空,返回调试信息 if (empty(trim($output))) { $debug_info = array( '分类ID' => $atts['category_id'], '文章数量' => $atts['posts_count'], '标题' => $atts['title'], '每页显示' => $atts['slides_per_view'] ); $output = '
'; $output .= '

社会活动轮播简码调试信息

'; $output .= '

模板输出为空,可能的原因:

'; $output .= ''; $output .= '

当前参数:

'; $output .= '
' . print_r($debug_info, true) . '
'; $output .= '
'; } return $output; } add_shortcode('social_activities', 'nenghui_social_activities_shortcode'); // 投资者关系区块简码 function nenghui_investor_relations_shortcode($atts) { // 设置默认属性 $atts = shortcode_atts(array( 'title' => '投资者关系', 'class' => '', 'id' => '', ), $atts, 'investor_relations'); // 模拟区块数据 $block = array( 'id' => !empty($atts['id']) ? $atts['id'] : 'investor-relations-' . uniqid(), 'className' => $atts['class'] ); // 准备传递给模板的参数 $args = array( 'title' => $atts['title'] ); // 开始输出缓冲 ob_start(); // 确保变量在模板中可用 extract($args); // 包含模板文件 include get_template_directory() . '/template-parts/block/black-investor-relations.php'; // 获取输出内容 $output = ob_get_clean(); return $output; } add_shortcode('investor_relations', 'nenghui_investor_relations_shortcode'); // 导航菜单简码 function nenghui_navigation_menu_shortcode($atts) { // 设置默认属性 $atts = shortcode_atts(array( 'menu_id' => 'primary', 'menu_class' => '', 'theme' => 'default', 'show_border' => 'true', 'align' => 'left', 'class' => '', 'id' => '', ), $atts, 'navigation_menu'); // 转换字符串布尔值 $show_border = filter_var($atts['show_border'], FILTER_VALIDATE_BOOLEAN); // 准备传递给模板的参数 $args = array( 'menu_id' => $atts['menu_id'], 'menu_class' => $atts['menu_class'], 'theme' => $atts['theme'], 'show_border' => $show_border, 'align' => $atts['align'] ); // 模拟区块数据 $block = array( 'id' => !empty($atts['id']) ? $atts['id'] : 'navigation-menu-' . uniqid(), 'className' => $atts['class'] ); // 开始输出缓冲 ob_start(); // 包含模板文件 include get_template_directory() . '/template-parts/block/block-navigation-menu.php'; // 动态加载navigation-menu相关资源 if (!wp_style_is('navigation-menu-css', 'enqueued')) { $theme_url = get_template_directory_uri(); $theme_path = get_template_directory(); $css_file = '/assets/css/navigation-menu.css'; if (file_exists($theme_path . $css_file)) { wp_enqueue_style('navigation-menu-css', $theme_url . $css_file, array(), '1.0.0'); } else { // 如果CSS文件不存在,记录日志但不阻止功能 error_log('Navigation menu CSS file not found: ' . $theme_path . $css_file); } } if (!wp_script_is('navigation-menu-js', 'enqueued')) { $theme_url = get_template_directory_uri(); $theme_path = get_template_directory(); $js_file = '/assets/js/navigation-menu.js'; if (file_exists($theme_path . $js_file)) { wp_enqueue_script('navigation-menu-js', $theme_url . $js_file, array('jquery'), '1.0.0', true); } else { // 如果JS文件不存在,记录日志但不阻止功能 error_log('Navigation menu JS file not found: ' . $theme_path . $js_file); } } // 获取输出内容 $output = ob_get_clean(); return $output; } add_shortcode('navigation_menu', 'nenghui_navigation_menu_shortcode'); // 业务流程区块简码 function nenghui_business_process_shortcode($atts) { // 设置默认属性 $atts = shortcode_atts(array( 'class' => '', 'id' => '', 'title' => '', 'subtitle' => '', 'tab_01_title' => '', 'tab_01_description' => '', 'tab_01_image' => '', 'tab_02_title' => '', 'tab_02_description' => '', 'tab_02_image' => '', 'tab_03_title' => '', 'tab_03_description' => '', 'tab_03_image' => '', 'tab_04_title' => '', 'tab_04_description' => '', 'tab_04_image' => '', ), $atts, 'business_process'); // 模拟区块数据 $block = array( 'id' => !empty($atts['id']) ? $atts['id'] : 'business-process-' . uniqid(), 'className' => $atts['class'] ); // 设置自定义器值(模拟) $customizer_values = array( 'business_process_show' => true, 'business_process_title' => !empty($atts['title']) ? $atts['title'] : get_theme_mod('business_process_title', '设计业务流程'), 'business_process_subtitle' => !empty($atts['subtitle']) ? $atts['subtitle'] : get_theme_mod('business_process_subtitle', 'DESIGN BUSINESS PROCESS'), 'business_process_tab_01_title' => !empty($atts['tab_01_title']) ? $atts['tab_01_title'] : get_theme_mod('business_process_tab1_title', '可行性研究'), 'business_process_tab_01_description' => !empty($atts['tab_01_description']) ? $atts['tab_01_description'] : get_theme_mod('business_process_tab1_description', '前期规划及可行性分析'), 'business_process_tab_01_image' => !empty($atts['tab_01_image']) ? $atts['tab_01_image'] : get_theme_mod('business_process_tab1_image', get_template_directory_uri() . '/assets/images/FWas.jpg'), 'business_process_tab_02_title' => !empty($atts['tab_02_title']) ? $atts['tab_02_title'] : get_theme_mod('business_process_tab2_title', '初步设计'), 'business_process_tab_02_description' => !empty($atts['tab_02_description']) ? $atts['tab_02_description'] : get_theme_mod('business_process_tab2_description', '方案设计及技术论证'), 'business_process_tab_02_image' => !empty($atts['tab_02_image']) ? $atts['tab_02_image'] : get_theme_mod('business_process_tab2_image', get_template_directory_uri() . '/assets/images/FWas.jpg'), 'business_process_tab_03_title' => !empty($atts['tab_03_title']) ? $atts['tab_03_title'] : get_theme_mod('business_process_tab3_title', '施工图设计'), 'business_process_tab_03_description' => !empty($atts['tab_03_description']) ? $atts['tab_03_description'] : get_theme_mod('business_process_tab3_description', '详细设计及施工图纸'), 'business_process_tab_03_image' => !empty($atts['tab_03_image']) ? $atts['tab_03_image'] : get_theme_mod('business_process_tab3_image', get_template_directory_uri() . '/assets/images/FWas.jpg'), 'business_process_tab_04_title' => !empty($atts['tab_04_title']) ? $atts['tab_04_title'] : get_theme_mod('business_process_tab4_title', '竣工图设计'), 'business_process_tab_04_description' => !empty($atts['tab_04_description']) ? $atts['tab_04_description'] : get_theme_mod('business_process_tab4_description', '竣工验收及图纸归档'), 'business_process_tab_04_image' => !empty($atts['tab_04_image']) ? $atts['tab_04_image'] : get_theme_mod('business_process_tab4_image', get_template_directory_uri() . '/assets/images/FWas.jpg'), ); // 临时设置全局变量以供模板使用 global $business_process_shortcode_values; $business_process_shortcode_values = $customizer_values; // 确保样式和脚本已加载 if (!wp_style_is('business-process-css', 'enqueued')) { wp_enqueue_style('business-process-css', get_template_directory_uri() . '/assets/css/business-process.css', array(), '1.0.0'); } if (!wp_script_is('business-process-js', 'enqueued')) { wp_enqueue_script('business-process-js', get_template_directory_uri() . '/assets/js/business-process.js', array('jquery'), '1.0.0', true); } ob_start(); include get_template_directory() . '/template-parts/block/block-process.php'; $output = ob_get_clean(); // 清理全局变量 unset($business_process_shortcode_values); return $output; } add_shortcode('business_process', 'nenghui_business_process_shortcode'); // 户用轮播图区块简码 function nenghui_household_carousel_shortcode($atts) { // 设置默认属性 $atts = shortcode_atts(array( 'class' => '', 'id' => '', 'title' => '户用解决方案', 'subtitle' => 'HOUSEHOLD SOLUTIONS', 'show' => 'true', 'autoplay' => 'true', 'autoplay_delay' => '5000' ), $atts, 'household_carousel'); // 转换字符串布尔值 $show_household = filter_var($atts['show'], FILTER_VALIDATE_BOOLEAN); $autoplay = filter_var($atts['autoplay'], FILTER_VALIDATE_BOOLEAN); // 如果不显示该区块,直接返回 if (!$show_household) { return ''; } // 模拟区块数据 $block = array( 'id' => !empty($atts['id']) ? $atts['id'] : 'household-carousel-' . uniqid(), 'className' => $atts['class'] ); // 设置自定义器值(模拟) $customizer_values = array( 'household_title' => $atts['title'], 'household_subtitle' => $atts['subtitle'], 'household_show' => $show_household, 'household_autoplay' => $autoplay, 'household_autoplay_delay' => intval($atts['autoplay_delay']), 'household_block_id' => $block['id'], 'household_block_class' => $block['className'] ); // 临时设置全局变量以供模板使用 global $household_shortcode_values; $household_shortcode_values = $customizer_values; // 确保样式和脚本已加载 if (!wp_style_is('household-carousel-css', 'enqueued')) { wp_enqueue_style('household-carousel-css', get_template_directory_uri() . '/assets/css/household-carousel.css', array(), '1.0.0'); } if (!wp_script_is('household-carousel-js', 'enqueued')) { wp_enqueue_script('household-carousel-js', get_template_directory_uri() . '/assets/js/household-carousel.js', array(), '1.0.0', true); } ob_start(); include get_template_directory() . '/template-parts/block/block-household.php'; $output = ob_get_clean(); // 清理全局变量 unset($household_shortcode_values); return $output; } add_shortcode('household_carousel', 'nenghui_household_carousel_shortcode'); ?>