Việc hiển thị các banner động thay đổi theo thời gian trong ngày có thể giúp website của bạn trở nên sống động và phù hợp hơn với trải nghiệm người dùng. Bài viết này sẽ hướng dẫn bạn cách tích hợp chức năng hiển thị banner động vào theme Flatsome bằng cách sử dụng Advanced Custom Fields (ACF) và tùy chỉnh mã PHP trong tệp functions.php
. Với chức năng này, banner trên website sẽ tự động thay đổi dựa trên giờ trong ngày (buổi sáng, buổi chiều và buổi tối).
Lợi ích của việc hiển thị banner động:
- Cá nhân hóa trải nghiệm người dùng: Khách hàng sẽ cảm thấy trang web luôn tươi mới khi banner tự động thay đổi theo từng thời điểm trong ngày.
- Tăng tương tác người dùng: Banner động thu hút sự chú ý và giữ khách truy cập trên trang lâu hơn.
- Tối ưu hóa hiệu suất website: Chức năng này không cần plugin phức tạp, giúp website của bạn duy trì tốc độ tải nhanh.
Hướng dẫn chi tiết tạo chức năng hiển thị banner động theo thời gian trong ngày
Bước 1: Cài đặt và cấu hình Advanced Custom Fields (ACF)
- Cài đặt ACF: Đầu tiên, bạn cần cài đặt và kích hoạt plugin ACF trên trang quản trị WordPress.
- Tạo trường tùy chỉnh trong ACF: Thay vì tạo trường thủ công thông qua giao diện, chúng ta sẽ tạo các trường tùy chỉnh trực tiếp qua mã trong
functions.php
.
Bước 2: Tích hợp mã PHP vào tệp functions.php
Để hiển thị banner động theo thời gian, bạn cần chèn đoạn mã sau vào tệp functions.php
của theme Flatsome.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | // Kiểm tra nếu ACF có được cài đặt không if( function_exists('acf_add_options_page') ) { // Thêm trang Options Page để quản lý các banner acf_add_options_page(array( 'page_title' => 'Quản lý Banner', 'menu_title' => 'Banner', 'menu_slug' => 'banner-settings', 'capability' => 'edit_posts', 'redirect' => false )); } // Thêm các trường tùy chỉnh vào trang quản lý Banner if( function_exists('acf_add_local_field_group') ) { acf_add_local_field_group(array( 'key' => 'group_banner_settings', 'title' => 'Banner Settings', 'fields' => array( array( 'key' => 'field_morning_banner', 'label' => 'Morning Banner', 'name' => 'morning_banner', 'type' => 'image', 'instructions' => 'Upload banner cho buổi sáng (từ 6h đến 12h).', 'return_format' => 'url', 'preview_size' => 'medium', 'library' => 'all', ), array( 'key' => 'field_afternoon_banner', 'label' => 'Afternoon Banner', 'name' => 'afternoon_banner', 'type' => 'image', 'instructions' => 'Upload banner cho buổi chiều (từ 12h đến 18h).', 'return_format' => 'url', 'preview_size' => 'medium', 'library' => 'all', ), array( 'key' => 'field_night_banner', 'label' => 'Night Banner', 'name' => 'night_banner', 'type' => 'image', 'instructions' => 'Upload banner cho buổi tối (từ 18h đến 6h).', 'return_format' => 'url', 'preview_size' => 'medium', 'library' => 'all', ), ), 'location' => array( array( array( 'param' => 'options_page', 'operator' => '==', 'value' => 'banner-settings', ), ), ), 'menu_order' => 0, 'position' => 'normal', 'style' => 'default', 'label_placement' => 'top', 'instruction_placement' => 'label', )); } // Hiển thị banner động dựa trên thời gian trong ngày if( function_exists('get_field') ) { function display_dynamic_banner() { // Lấy thời gian hiện tại (giờ) $current_time = current_time('H'); $banner_image = ''; // Xác định banner dựa trên khung giờ if ($current_time >= 6 && $current_time < 12) { $banner_image = get_field('morning_banner', 'option'); } elseif ($current_time >= 12 && $current_time < 18) { $banner_image = get_field('afternoon_banner', 'option'); } else { $banner_image = get_field('night_banner', 'option'); } // Hiển thị banner nếu có hình ảnh if($banner_image) { echo '<div class="dynamic-banner" style="text-align:center; margin: 20px 0;">'; echo '<img src="' . esc_url($banner_image) . '" alt="Banner" style="max-width: 100%; height: auto;">'; echo '</div>'; } } // Hook vào vị trí trước phần header của theme Flatsome add_action('flatsome_before_header', 'display_dynamic_banner'); } |
Bước 3: Cách hoạt động của mã
- Tạo Options Page: Chức năng này sẽ tạo một trang trong phần quản trị WordPress để bạn có thể tải lên các banner tương ứng cho từng khung giờ: sáng (6h-12h), chiều (12h-18h), và tối (18h-6h).
- Hiển thị banner: Mã sẽ tự động xác định thời gian hiện tại và hiển thị banner phù hợp dựa trên giờ trong ngày.
Bước 4: Tinh chỉnh CSS (nếu cần)
Nếu muốn tùy chỉnh giao diện banner, bạn có thể thêm các dòng CSS vào tệp style.css
:
1 2 3 4 5 6 7 8 9 10 | .dynamic-banner { text-align: center; margin: 20px 0; } .dynamic-banner img { max-width: 100%; height: auto; } |
- 🔥 TOP 10+ ĐOẠN CODE FLATSOME CỰC HAY GIÚP WEBSITE MƯỢT, NHẸ, CHUẨN SEO
- Cách Chuyển Hướng Người Dùng Về Trang Cũ Sau Khi Đăng Nhập Trong WooCommerce
- Rank Math SEO CSS có ảnh hưởng đến tăng tốc độ load? Cách loại bỏ Rank Math SEO CSS để tăng tốc độ load
- Cách Sử Dụng Google Analytics Để Theo Dõi Traffic
- Hướng Dẫn Tạo Gallery 3D Bằng HTML, CSS và JavaScript