Học WordPress + AI / WordPress cho người VIỆT !
WPShare247

Học wordpress cho người mới bắt đầu

  • Bắt đầu
    • Học WordPress
    • Elementor
    • WooCommerce
    • Tạo WordPress
    • Học WordPress kiểu mới 2025
    • Học PHP cơ bản
    • Tạo Website bằng WordPress
    • Quản trị WordPress
    • Sửa lỗi WordPress
    • Theme wordpress
    • Plugin WordPress
    • Hàm PHP
    • Seo WordPress
    • Bảo mật WordPress
    • Html & Css
    • Javascript và jQuery
    • Hướng dẫn lập trình
  • Video
    • Video TikTok
    • Video Shorts
  • Kho plugin
  • Tải Web Miễn Phí
  • Công cụ
    • Kiểm tra web WordPress
    • WordPress theme gì?
    • Check IP Website
    • Kiểm tra Tên Miền
    • Kiểm Tra SSL
    • Tạo File Disavow Google
    • Tạo QR Code
  • Giới thiệu
    • Khuyến Mãi
  • Đăng nhập
X
☰

Trang chủ » Học WordPress từ A đến Z » Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

📌 Mới: Bạn có thể 🧠 đặt câu hỏi cho AI về nội dung bài viết này ở cuối trang!

Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

Xuất bản vào 05/08/2021 bởi Chinsu Man Xem: 12001
Shares
ChatGPT ChatGPT
Share
Share
Pin

CHƯƠNG TRÌNH GIẢM 50% GIÁ TẤT CẢ CÁC GÓI HOSTING WORDPRESS => Link giảm 50%

Bài viết hướng dẫn có chứa CODE - Copy và sử dụng chúng sẽ tiện hơn cho bạn.

Để hiểu cơ bản Widget trong WordPress là gì? Bạn đừng vội mà hãy đọc bài viết này theo thứ tự từ trên xuống, mọi vấn đề liên quan đến Widget đều được chúng tôi giải thích và có các đoạn code mẫu. Bạn chỉ cần sao chép và nhúng vào để chạy thôi. Đơn giản lắm đúng không?

1. Widget WordPress là gì?

Widget trong CMS WordPress là những khối (block) chứa nội dung để hiển thị, chúng có thể là chữ, hình ảnh hay bất cứ nội dung nào bạn muốn. Widget sẽ hiển thị được nhiều khu vực (Sidebar), bạn có thể gọi chúng bất cứ khi nào cần.

🌱 Nếu thấy bài viết hữu ích, bạn có thể ủng hộ tác giả bằng cách nhấn vào quảng cáo bên dưới — như một donate miễn phí. Bạn không mất gì nhưng chúng tôi sẽ có thêm chi phí để duy trì và vận hành website. Cảm ơn bạn! 🙏

Widget được quản lý ở đâu?

Ngoài những Widget mặc định được tạo ra sẵn, Widget còn được tạo ra từ theme hoặc plugin wordpress nếu cần thiết. Nhưng tất cả chúng được quản lý tại menu trái trong quản trị: Giao diện > widget

Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

Chú ý: Nếu sau khi vào khu vực Widget, các bạn không thấy giao diện giống hình trên, nghĩa là các bạn đang sử dụng WordPress phiên bản 5.8 trở lên. Kể từ version này WordPress đã mặc định quản lý Widget dạng Block Editor. Bạn có thể disable Widget Block Editor WordPress bẳng đoạn code sau:

//Thêm đoạn code sau vào functions.php
function wpshare247_theme_support() {
    remove_theme_support( 'widgets-block-editor' );
}
add_action( 'after_setup_theme', 'wpshare247_theme_support' );

2. Widget và Sidebar

2.1 Sidebar wordpress là gì?

Sidebar trong wordpress là những khu vực được tạo ra để gọi các widget. Các sidebar thường thấy trong theme WP là Footer, Sidebar trái, phải….

Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

Bạn có thể tạo nhiều hơn 1 sidebar trong mỗi theme bằng cách, nhúng đoạn code sau vào file functions.php thông qua hàm register_sidebar được WP cung cấp sẵn. Chú ý Sidebar chỉ được đăng ký thành công khi widgets_init được gọi.

function wpshare247_widgets_init(){
    // Thêm SB footer
    register_sidebar( array(
        'name'          => __( 'Footer', 'text_domain'), // Tên sidebar hiển thị trong admin
        'id'            => 'sidebar-footer', // ID của sidebar không được trùng, dùng để hiển thị SB
        'description'   => __( 'Thêm các widget *[Footer] vào đây', 'text_domain'), // Mô tả cho SB nảy
        'before_widget' => '<section id="%1$s" class="widget %2$s">', // Bạn có thể thêm Class cho SB vào đây
        'after_widget'  => '</section>',
        'before_title'  => '<h2 class="widget-title">', // Thẻ mở để tạo tiêu đề chung cho tất cả các Widget nẳm trong Sidebar này
        'after_title'   => '</h2>', // Đóng thẻ tiêu đề
    ) );
    
    // Thêm SB phải
    register_sidebar( array(
        'name'          => __( 'Sidebar phải', 'text_domain' ),
        'id'            => 'sidebar-right',
        'description'   => __( 'Thêm các widget *[Phải] vào đây', 'text_domain' ),
        'before_widget' => '<section id="%1$s" class="widget sb-right %2$s">',
        'after_widget'  => '</section>',
        'before_title'  => '<h2 class="widget-title">',
        'after_title'   => '</h2>',
    ) );
    
    // Thêm các SB tiếp theo
}
add_action( 'widgets_init', 'wpshare247_widgets_init' );

Như vậy là sao khi nhúng đoạn code trên vào, bạn hãy kiểm tra lại trong Giao diện > widget xem đã thay đổi những gì nhé.

Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

Sidebar nào được đăng ký trước sẽ hiển thị trước và ngược lại, để đổi vị trí các SB bạn chỉ cần hoán đổi vị trí các hàm register_sidebar trong đoạn code trên là được. Chú ý là các vị trí này hoàn toàn không ảnh hưởng gì đến hiển thị chúng ngoài giao diện trang chủ chúng ta.

2.2 Mối quan hệ giữa widget và sidebar

Nói về mối quan hệ giữa WG và SB, chúng ta có thể hiểu đơn giản là một khu vườn có nhiều cây. Nghĩa là mỗi SB có thể chứa một hoặc nhiều hơn các WG, các WG có thể trùng lặp lại với nhau.

Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

Vị trí các WG có thể sắp xếp lại trong cùng một SB, các vị trí này sẽ thay đổi bên ngoài trang chủ sau khi chúng thay đổi. Để thay đổi vị trí các WG bạn chỉ cần nắm kéo và thả chúng, hoặc bạn có thể di chuyển một WG từ SB này sang SB khác một cách dễ dàng.

3. Cách sử dụng Widget như thế nào?

Cách sử dụng Widget hết sức đơn giản, chúng ta chỉ cần nắm kéo và thả chúng vào Sidebar cần hiển thị chúng.

Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

4. Cách tạo Widget mới

Trong bài viết này tôi sẽ giúp các bạn tạo ra một Widget đơn giản nhất, các tùy biến nâng cao sẽ được giới thiệu trong các bài viết tiếp theo.

Đăng ký Widget

Để đăng ký một hay nhiều WG bạn hãy sao chép đoạn code sau thêm chúng vào functions.php. Nhưng trước tiên bạn hãy tạo cho tôi 1 thư mục tên là ‘widgets’ mục đích là quản lý toàn bộ các WG sau này.

Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

Tiếp theo bạn hãy copy toàn bộ nội dung bên dưới và tạo thành 1 file có tên là wpshare247_simple.php nằm trong thư mục widgets nhé. Bạn có thể xem giải thích trong các dòng comment trong đoạn code bên dưới nhé.

<?php
if( !class_exists('wpshare247_simple') ):
    class wpshare247_simple extends WP_Widget {
        function __construct() {
            parent::__construct(
                'wpshare247_simple', esc_html_x('* [Trái] Thông tin truy cập', 'widget name', 'wpshare247'),
                array(
                    'classname' => 'wpshare247_simple',
                    'description' => esc_html__('Hiển thị thông tin của khách đang truy cập', 'wpshare247'),
                    'customize_selective_refresh' => true
                )
            );
        }
        
        //Hiển thị nội dung Widget lên website
        function widget($args, $instance) {
            $defaults = array('title' => '');
            
            //Gọi giá trị các field đã khai báo trong hàm form()
            $title = $instance['title'];
            //$field_khac = $instance['field_khac']; // gọi thêm các field khác tại dòng này
            
            echo $args['before_widget'];
            ?>
                <?php echo $args['before_title'] . $title . $args['after_title'] ?>
                <div class="wg-content">
                    <ul>
                        <li><span><?php esc_html_e('IP hiện tại', 'wpshare247'); ?></span>: <?php echo $_SERVER['REMOTE_ADDR']; ?></li>
                    </ul>
                    
                </div>
            <?php
            echo $args['after_widget'];
        }
        
        //Hàm cập nhật option cho Widget
        function update($new_instance, $old_instance) {
            $instance = array();
            
            // Cập nhật title được khai báo trong hàm form
            if (!empty($new_instance['title'])) {
                $instance['title'] = ($new_instance['title']);
            }
            
            // Cập nhật thêm các các field được khai báo trong hàm form (nếu có)
            return $instance;
        }
        
        //Form cập nhật các option cho Widget
        function form($instance) {
            $arr_page = get_pages();
            $defaults = array('title' => '');
            $instance = wp_parse_args($instance, $defaults); ?>
            
            <!-- Widget field 1 -->
            <p>
                <label for="<?php echo esc_attr($this->get_field_id('title')); ?>"><?php esc_html_e('Tiêu đề', 'wpshare247'); ?></label>
                <input class="widefat" type="text" value="<?php echo esc_attr($instance['title']); ?>" name="<?php echo esc_attr($this->get_field_name('title')); ?>" id="<?php echo esc_attr($this->get_field_id('title')); ?>" />
            </p>
            
            <!-- Bạn có thể thêm các Widget field khác bên dưới, field có thể là text, select, textarea..... -->
            
            
        <?php
        }
    }
endif;
<!-- Bạn có thể thêm các Widget field khác bên dưới, field có thể là text, select, textarea..... -->

Trong Widget mẫu trên tôi chỉ tạo 1 trường widget đơn giản là text field, bạn có thể tham khảo trọn bộ Field Widget từ cơ bản đến nâng cao tại đây => https://wpshare247.com/chia-se-bo-field-widget-giup-ban-thiet-ke-website-wordpress-nhanh-hon

Việc quan trọng nhất là khai báo với WordPress rằng tôi muốn đăng ký một WG mới bằng đoạn code bên dưới, hãy nhúng chúng vào file functions.php, kì tích sẽ xuất hiện.

function wpshare247_register_widgets(){
    //Khai báo widget mới
    $file = realpath(dirname(__FILE__)).'/widgets/wpshare247_simple.php';
    require_once($file);
    register_widget('wpshare247_simple');
    
    //Hãy tiếp tục khai báo thêm các WG khác như bên dưới
    /*$file = realpath(dirname(__FILE__)).'/widgets/wpshare247_simple_2.php';
    require_once($file);
    register_widget('wpshare247_simple_2');*/
    
}
add_action('widgets_init', 'wpshare247_register_widgets');

Sau dòng code này Widget đã được tạo trong quản trị, chúng ta sẽ thấy nó xuất hiện với tên vừa khai báo trên “* [Trái] Thông tin truy cập” sở dĩ tôi thêm dấu * vào trước tên Widget để nó hiển thị lên trên, bởi WordPress sẽ sắp xếp các WG theo chữ cái.

Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

Ok fine, bây giờ chỉ cần kéo chúng vào các Sidebar và sử dụng thôi.

Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

Có thể giúp ích được cho bạn nhiều hơn: Chia sẻ bộ Field Widget WS247 giúp bạn Thiết kế Website WordPress giống mẫu 99% trong thời gian ngắn nhất Xem tại đây

5. Cách gọi Sidebar vào các template

Tại mục 2.1 chúng ta đã tạo ra các Sidebar, vậy để chúng hiển thị ra ngoài website chúng ta thì làm cách nào. SB wordpress sẽ hiển thị bất cứ đâu nếu bạn gọi chúng, trong ví dụ này tôi sẽ gọi vào footer.php nhé. Mở file footer.php

Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

Tiếp theo nhúng đoạn code sau vào vị trí bạn muốn hiển thị, chú ý hàm dynamic_sidebar nhé

<?php
if ( is_active_sidebar( 'sidebar-footer' ) ) : ?>

    <aside class="widget-area">
        <?php dynamic_sidebar( 'sidebar-footer' ); ?>
    </aside><!-- .widget-area -->

<?php endif; ?>

sidebar-footer là ID của Sidebar được đăng ký mục 2.1

Và kết quả như hình bên dưới

Bài 08 – Hướng dẫn cách tạo mới Widget đơn giản trong WordPress

Như vậy tôi vừa hướng dẫn bạn cách thêm một Widget đơn giản nhất vào WordPress. Widget là một phần không thể thiếu trong mã nguồn mở này, thế mạnh của nó cũng nằm ở WG, nếu bạn học wordpress thành thạo, kết hợp thêm tùy biến nâng cao các Widget nữa, việc thiết kế web bằng WordPress sẽ chẳng bao giờ làm khó được bạn.

Xem Video Cách tạo mới Widget trong WordPress

CHƯƠNG TRÌNH GIẢM 50% GIÁ TẤT CẢ CÁC GÓI HOSTING WORDPRESS => Link giảm 50%

❓ Hỏi AI về nội dung bài viết

Tóm tắt nội dung chính Gợi ý mục quan trọng Giải thích mục 1 rõ hơn Viết lại đoạn văn cho dễ hiểu Rút gọn văn bản mà vẫn đủ ý Thêm ví dụ minh hoạ cho đoạn 1 Lọc keyword từ khóa bài viết Lọc thuật ngữ Dịch bài viết sang: Tiếng Anh
Nếu bài viết chưa giải đáp hết thắc mắc của bạn, hãy hỏi WPSHARE247 AI – trợ lý thông minh sẵn sàng hỗ trợ ngay trong nội dung bài viết.

Bạn muốn tích hợp chức năng Hỏi AI trực tiếp dưới mỗi bài viết trên website? Hãy liên hệ dịch vụ thiết kế web tại Website366.com để được hỗ trợ triển khai nhanh chóng và chuyên nghiệp.

Shares
ChatGPT ChatGPT
Share
Share
Pin
← Bài cũ hơn → Bài tiếp theo
register_sidebarsidebarwidgetwidgets_init
Bài viết liên quan
  • Tài liệu hướng dẫn tích hợp AI Gemini trực tiếp vào WordPress thông qua API Google từng bước cụ thể

    Tài liệu hướng dẫn tích hợp AI Gemini trực tiếp vào WordPress thông qua API Google từng bước cụ thể

  • Tài liệu Hướng Dẫn Upload File Lên WordPress Bằng Ajax Dành Cho Người Mới

    Tài liệu Hướng Dẫn Upload File Lên WordPress Bằng Ajax Dành Cho Người Mới

  • Cài WordPress tự động mới nhất chỉ bằng 1 cú nhấp chuột trên Localhost với XAMPP

    Cài WordPress tự động mới nhất chỉ bằng 1 cú nhấp chuột trên Localhost với XAMPP

  • Hướng Dẫn Sử Dụng functions.php Cho Người Mới Học WordPress – Đừng Để Code Làm Bạn “Chán Ngắt”!

    Hướng Dẫn Sử Dụng functions.php Cho Người Mới Học WordPress – Đừng Để Code Làm Bạn “Chán Ngắt”!

Học thiết kế Web WordPress

Download WordPress

Tải bản WordPress mới nhất

Tiếng Việt: Tải WordPress Mới

Quốc tế: Tải WordPress Mới

Liên kế MXH của WPShare247

Tìm thấy những kiến thức mới từ WPShare247

Giảm 50% Hosting

Xem chi tiết giảm giá 50% gói lưu trự Hosting tại đây => Link giảm 50%

Cách tạo Web bán hàng Bằng Flatsome

https://www.youtube.com/watch?v=gnT8Dn_KiXU

Video Tiktok mới nhất

@hocwordpress SSL bằng Plug-in Wordpress Really Simple SSL giúp bảo mật đúng cách hơn, tránh tình trạng bảo mật ảo HTTPS #wpshare247 #wordpress #plugin #ssl #https ♬ nhạc nền - Học WordPress - WPSHARE247.COM

Cách tạo Website WordPress 2025

https://www.youtube.com/watch?v=HtbtsH8q-KU

Bộ WIDGETS WS247 Đa Năng

Giúp bạn Thiết kế Website WordPress giống mẫu 99% trong thời gian ngắn nhất (Có bản nâng cấp mới V2). Download tại đây

 

Xem chi tiết tại đây  https://wpshare247.com/chia-se-bo-field-widget-giup-ban-thiet-ke-website-wordpress-nhanh-hon

MUA HOSTING – TẶNG BUỔI HỌC WP

Tặng 03 buổi (Mỗi buổi 30 phút) hỗ trợ miễn phí, tất cả các chuyên đề nào về học thiết kế website bằng WordPress khi mua Hosting và Tên miền => tại đây [ Có thể liên hệ bất cứ giờ nào để hỗ trợ học WP ]

Tôi đang cần...
Cách làm blog Plugin Wordpress Bảo mật Wordpress Seo với Wordpress Lỗi Wordpress WooCommerce

MUA HOSTING – TẶNG BUỔI HỌC WP

Chủ đề

  • Code WordPress
  • Hàm WordPress
  • Hướng dẫn WordPress
  • Theme wordpress
  • WooCommerce
  • Seo WordPress
  • Html & Css
  • Javascript và jQuery
  • Plugin WordPress
  • Hướng dẫn lập trình

Tag

add_action (2) add_filter (2) admin code (2) alt (2) Block Theme (2) cart (4) Contact Form 7 (8) css (4) custom post type (2) cài wordpress (2) danh mục sản phẩm (2) elementor (2) elementor free (2) filter (2) flatsome (2) functions.php (2) google font (2) hosting (2) html css (2) hướng dẫn dùng plugin (4) học wordpress (7) javascript (5) jquery (3) localhost (2) Loop (2) mysql (4) ngôn ngữ (2) phpmyadmin (3) plugin (4) plugin wordpress (2) Product (4) SMTP (2) Sản phẩm (3) Template page (2) theme option (2) Theme Wordpress (3) widget (2) woocommerce (25) wordpress (5) WordPress 2025 (2) wp-config (2) wp_enqueue_scripts (2) WP_Query (6) xampp (4) Yoast SEO (2)
Về WPShare247

Học wordpress cho người mới bắt đầu.

WPShare247 là blog chia sẻ các kiến thức về WordPress, sửa chữa lỗi wordpress, giới thiệu theme và plugin wordpress mới nhất. Đào tạo khóa học thiết kế Website bằng WordPress.

Menu
  • Trang chủ
  • Giới thiệu
  • Blog
  • Plugin WordPress
  • Liên hệ
Chủ đề wordpress
  • Sửa lỗi WordPress
  • Plugin WordPress
  • Theme wordpress
  • Seo WordPress
  • WooCommerce

Copyright © 2025 WPSHARE247. All Rights Reserved.
Một sản phẩm của WEB 366

  • Thiết kế web bởi Website366.com
  • Thiết kế website chuyên nghiệp TBAY.VN
  • Thiết kế website bán hàng