/** * Shortcode: [vkl_home_banner] * - Banner slider image: PAN LEFT + ZOOM IN (Ken Burns) * - Only 1 banner (Tết layout), no event conditions */ add_shortcode('vkl_home_banner', function($atts){ if (!function_exists('get_field')) return ''; $atts = shortcode_atts([ 'post_id' => 0, 'bg_id' => 6822, // ✅ nền Tết 'bg_size' => 'original', 'bg_overlay' => '', // Tết bản gốc không dùng overlay ], $atts, 'vkl_home_banner'); // Resolve post_id $post_id = (int) $atts['post_id']; if ($post_id <= 0) $post_id = (int) get_queried_object_id(); if ($post_id <= 0) { global $post; $post_id = isset($post->ID) ? (int) $post->ID : 0; } if ($post_id <= 0) return ''; // ACF data $slides = get_field('home_banner_anh_slide', $post_id); $sup = (string) get_field('home_banner_sup_tieu_de', $post_id); $title = (string) get_field('home_banner_tieu_de', $post_id); if (!is_array($slides)) $slides = []; // Build slider items (desktop) $slider_items = ''; foreach ($slides as $img_id) { $img_id = (int) $img_id; if ($img_id <= 0) continue; $slider_items .= '
' . "\n"; } // Build slider items (mobile) $slider_items_sm = ''; foreach ($slides as $img_id) { $img_id = (int) $img_id; if ($img_id <= 0) continue; $slider_items_sm .= '' . "\n"; } $sup_esc = esc_html($sup); $title_esc = esc_html($title); // Assets once static $assets_done = false; $assets = ''; if (!$assets_done) { $assets_done = true; $assets .= ''; } // Build UX (Tết layout) $ux = $assets; $ux .= '[section class="home_banner vkl-home-banner" bg="' . (int)$atts['bg_id'] . '" bg_size="' . esc_attr($atts['bg_size']) . '" padding="0px"]' . "\n"; $ux .= '[row style="collapse" width="full-width" h_align="right"]' . "\n"; $ux .= '[col span="8" span__sm="9" align="right"]' . "\n"; $ux .= '[ux_slider slide_width="100%" visibility="hide-for-small" slide_align="right"]' . "\n"; $ux .= $slider_items; $ux .= '[/ux_slider]' . "\n"; $ux .= '[ux_slider slide_width="100%" visibility="show-for-small" slide_align="right"]' . "\n"; $ux .= $slider_items_sm; $ux .= '[/ux_slider]' . "\n"; $ux .= '[/col]' . "\n"; $ux .= '[/row]' . "\n"; $ux .= '[row style="collapse"]' . "\n"; $ux .= '[col span="6" span__sm="12" margin="-600px 0px 0px 0px" margin__sm="-200px 0px 0px 0px"]' . "\n"; $ux .= '' . "\n"; $ux .= '[/col]' . "\n"; $ux .= '[/row]' . "\n"; $ux .= '[/section]'; return do_shortcode($ux); });