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ủ » Code WordPress » Bài 10 – Hướng dẫn cách tạo Theme Option cho 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 10 – Hướng dẫn cách tạo Theme Option cho WordPress

Xuất bản vào 05/12/2021 bởi Chinsu Man Xem: 8582
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.

1. Theme Option WordPress là gì?

Bạn hãy hình dung Website chúng ta là tổng hợp nhiều thông số được cấu hình hiển thị trên trang chủ hay bất cứ đâu đó trên Web như Logo, Điện thoại, Email, Địa chỉ, Google Map, Facebook Messenger….Với trang Theme Option admin sẽ giúp chúng ta hoặc Khách hàng hay các quản trị viên Website dễ dàng thay đổi chỉnh sửa các thông số đó một cách nhanh chóng thay vì bạn tự thay đổi dữ liệu đó bằng các dòng code.

Bài 10 - Hướng dẫn cách tạo Theme Option cho WordPress

🌱 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! 🙏

Chức năng Theme Option thường sẽ bị bỏ qua bởi các bạn mới tìm hiểu WordPress thấy nó hơi phức tạp. Đa phần các bạn sẽ sử dụng chức năng tạo Sidebar rồi tạo Widget kéo vào. Cách này không sai nhưng có một hạn chế là sẽ sinh ra nhiều Sidebar dẫn tới rối rắm.

Nhưng khi bạn đã thành thạo WP rồi, đến lúc này bạn sẽ cần nó hơn bao giờ hết.

Có rất nhiều cách tạo ra theme option trong WordPress như Cài plugin, hay Acf theme options nhưng cách bên dưới đây là cách tương đối đơn giản mà WordPress hỗ trợ chúng ta.

2. Cách tạo Theme Option WordPress như thế nào?

Để tạo được trang theme option chứa các cấu hình cơ bản của Website như Logo, số hotline, email, địa chỉ….

Trước tiên bạn hãy tạo cho tôi 1 file có tên là theme_option.php tại thư mục gốc của theme đang dùng. Cụ thể của tôi như sau:

Bài 10 - Hướng dẫn cách tạo Theme Option cho WordPress

Tiếp theo hãy nhúng require chúng vào theme chúng ta. Mở file functions.php và chép đoạn code sau vào bất kì vị trí nào.

require_once get_parent_theme_file_path( '/theme_option.php' );

Bài 10 - Hướng dẫn cách tạo Theme Option cho WordPress

Thật đơn giản phải không? Mọi bước chuẩn bị đã sẵn sàng, Let’s Go !!!!

Chú ý: Mọi thao tác bên dưới đây đều nằm trong file theme_option.php nhé.

2.1 Đăng ký menu trang Theme Option

//1. Tạo trang cấu hình Theme Option
add_action("admin_menu", 'wpshare247_create_theme_option_page');
function wpshare247_create_theme_option_page(){
    $page_title = 'Theme Options'; // Đổi tên Menu theo ý bạn muốn
    $menu_title = $page_title;
    $capability = 'manage_options'; // Phân Quyền, ai có quyền sử dụng trang này
    $menu_slug = 'wpshare247-theme-options';
    $function_callback = 'wpshare247_the_content_option_fields';
    $icon_url = '';
    $position = 1;
    add_menu_page($page_title, $menu_title, $capability, $menu_slug , $function_callback, $icon_url, $position);
}

function wpshare247_the_content_option_fields(){
?>
    <div id="poststuff" class="w366-options-area">
        <div class="postbox-container">
            <div class="meta-box-sortables ui-sortable">
                <div class="postbox ">
                    <h2 class="hndle ui-sortable-handle">Theme Option - Cấu hình Website Wpshare247.com</h2>
                    <div class="wle-tab-content">
                    <!-- Form khai báo các Options tại đây -->		
                    </div>
                    <div style="clear:both;"></div>
                </div>
            </div>
        </div>
    </div>
    <?php
}

Bằng cách sử dụng action admin_menu sẽ giúp ta khai báo được menu admin như hình bên dưới.

Bài 10 - Hướng dẫn cách tạo Theme Option cho WordPress

2.2 Đăng ký các field cho Theme Option

//2. Đăng ký các field cho Theme Option
add_action('admin_init', 'wpshare247_register_option_fields' );
function wpshare247_register_option_fields(){
    //Khai báo các trường dữ liệu cho theme option tại đây
    register_setting( WS247_GE_FIELDS_GROUP, 'wpshare247_hotline');
    register_setting( WS247_GE_FIELDS_GROUP, 'wpshare247_email');
    register_setting( WS247_GE_FIELDS_GROUP, 'wpshare247_address');
    //Copy: register_setting( WS247_GE_FIELDS_GROUP, 'wpshare247_ten_field_moi_cua_ban');
}

2.3 Khai báo các field cho theme option

Tại mục 2.2 chúng ta khai báo 3 field là: wpshare247_hotline, wpshare247_email, wpshare247_address. Tại bước này chúng ta sẽ hiển thị các field này vào form <form method="post" action="options.php">, bạn có thể xem lại tại đoạn code <!-- Form khai báo các Options tại đây --> ở bước 2.1 hoặc thay thế đoạn code 2.1 bằng đoạn code bên dưới đây.

//1. Tạo trang cấu hình Theme Option
add_action("admin_menu", 'wpshare247_create_theme_option_page');
function wpshare247_create_theme_option_page(){
    $page_title = 'Theme Options';
    $menu_title = $page_title;
    $capability = 'manage_options'; // Phân Quyền, ai có quyền sử dụng trang này
    $menu_slug = 'wpshare247-theme-options';
    $function_callback = 'wpshare247_the_content_option_fields';
    $icon_url = '';
    $position = 1;
    add_menu_page($page_title, $menu_title, $capability, $menu_slug , $function_callback, $icon_url, $position);
}

function wpshare247_the_content_option_fields(){
?>
    <div id="poststuff" class="w366-options-area">
        <div class="postbox-container">
            <div class="meta-box-sortables ui-sortable">
                <div class="postbox ">
                    <h2 class="hndle ui-sortable-handle">Theme Option - Cấu hình Website Wpshare247.com</h2>
                    <div class="wle-tab-content">
                    	<!-- Form khai báo các Options tại đây -->
                        <form method="post" action="options.php">
                        	<?php settings_fields( WS247_GE_FIELDS_GROUP ); ?>
                            <?php do_settings_sections( WS247_GE_FIELDS_GROUP ); ?>
                            
                            <!--Khai báo các fields tại đây: xem hàm 'wpshare247_register_option_fields' bên dưới-->
                            <div class="wpshare247-option-fields">
                                <table class="form-table">
                                	<!-- Mỗi 1 tr là 1 field -->
                                    
                                    <!-- wpshare247_hotline -->
                                    <tr valign="top">
                                    	<td><strong><?php esc_html_e("Hotline", 'wpshare247.com'); ?></strong></td>
                                        <td>
                                        	<?php $wpshare247_hotline = get_option('wpshare247_hotline');?>
                                            <input style="width:100%" placeholder="0852.080383" type="text" id="<?php echo esc_html('wpshare247_hotline'); ?>" name="<?php echo esc_html('wpshare247_hotline'); ?>" value="<?php echo esc_attr($wpshare247_hotline); ?>" />
                                        </td>
                                    </tr>
                                    
                                    <!-- wpshare247_email -->
                                    <tr valign="top">
                                    	<td><strong><?php esc_html_e("Email", 'wpshare247.com'); ?></strong></td>
                                        <td>
                                        	<?php $wpshare247_email = get_option('wpshare247_email');?>
                                            <input style="width:100%" placeholder="hotro@tbay.vn" type="text" id="<?php echo esc_html('wpshare247_email'); ?>" name="<?php echo esc_html('wpshare247_email'); ?>" value="<?php echo esc_attr($wpshare247_email); ?>" />
                                        </td>
                                    </tr>
                                    
                                    <!-- wpshare247_address -->
                                    <tr valign="top">
                                    	<td><strong><?php esc_html_e("Địa chỉ", 'wpshare247.com'); ?></strong></td>
                                        <td>
                                        	<?php $wpshare247_address = get_option('wpshare247_address');?>
                                            <input style="width:100%" placeholder="303/41 Tân Sơn Nhì, Tân Phú, Hồ Chí Minh" type="text" id="<?php echo esc_html('wpshare247_address'); ?>" name="<?php echo esc_html('wpshare247_address'); ?>" value="<?php echo esc_attr($wpshare247_address); ?>" />
                                        </td>
                                    </tr>
                                    <!-- Khai báo thêm các trường tiếp theo tại đây 'wpshare247_ten_field_moi_cua_ban' -->
                                    <tr valign="top">
                                    	<td colspan="2"><?php submit_button(); ?></td>
                                    </tr>
                                </table>
                            </div>
                            
                        	
                        </form>
                    </div>
                    <div style="clear:both;"></div>
                </div>
            </div>
        </div>
    </div>
    <?php
}

Sau khi khai báo đoạn code trên chúng ta sẽ có 3 fields như bên dưới. Tại bước này bạn đã có thể nhấp lưu lại được rồi đấy.

Bài 10 - Hướng dẫn cách tạo Theme Option cho WordPress

2.4 Lấy dữ liệu từ các field đã khai báo để dùng

//3. Lấy dữ liệu từ các theme option
//Lấy trường theo key, ví dụ:
$wpshare247_hotline = get_option('wpshare247_hotline');
echo 'Điện thoại: ' .$wpshare247_hotline;

$wpshare247_email = get_option('wpshare247_email');
echo 'Email: ' .$wpshare247_hotline;

$wpshare247_address = get_option('wpshare247_address');
echo 'Địa chỉ: ' .$wpshare247_hotline;

Bạn có thể gọi bất kì dữ liệu trên tại đâu trong theme WordPress như header.php, footer.php…..

2.5 Tổng hợp lại nội dung file theme_option.php

Tôi sẽ tổng hợp lại toàn bộ các dòng code vào 1 file để các bạn dễ dàng copy nhé.

<?php
//WPSHARE247.COM Theme Option
define( 'WS247_GE_FIELDS_GROUP', 'Ws247_ge_pfs-fields-group' );

//1. Tạo trang cấu hình Theme Option
add_action("admin_menu", 'wpshare247_create_theme_option_page');
function wpshare247_create_theme_option_page(){
    $page_title = 'Theme Options';
    $menu_title = $page_title;
    $capability = 'manage_options'; // Phân Quyền, ai có quyền sử dụng trang này
    $menu_slug = 'wpshare247-theme-options';
    $function_callback = 'wpshare247_the_content_option_fields';
    $icon_url = '';
    $position = 1;
    add_menu_page($page_title, $menu_title, $capability, $menu_slug , $function_callback, $icon_url, $position);
}

function wpshare247_the_content_option_fields(){
?>
    <div id="poststuff" class="w366-options-area">
        <div class="postbox-container">
            <div class="meta-box-sortables ui-sortable">
                <div class="postbox ">
                    <h2 class="hndle ui-sortable-handle">Theme Option - Cấu hình Website Wpshare247.com</h2>
                    <div class="wle-tab-content">
                    	<!-- Form khai báo các Options tại đây -->
                        <form method="post" action="options.php">
                        	<?php settings_fields( WS247_GE_FIELDS_GROUP ); ?>
                            <?php do_settings_sections( WS247_GE_FIELDS_GROUP ); ?>
                            
                            <!--Khai báo các fields tại đây: xem hàm 'wpshare247_register_option_fields' bên dưới-->
                            <div class="wpshare247-option-fields">
                                <table class="form-table">
                                	<!-- Mỗi 1 tr là 1 field -->
                                    
                                    <!-- wpshare247_hotline -->
                                    <tr valign="top">
                                    	<td><strong><?php esc_html_e("Hotline", 'wpshare247.com'); ?></strong></td>
                                        <td>
                                        	<?php $wpshare247_hotline = get_option('wpshare247_hotline');?>
                                            <input style="width:100%" placeholder="0852.080383" type="text" id="<?php echo esc_html('wpshare247_hotline'); ?>" name="<?php echo esc_html('wpshare247_hotline'); ?>" value="<?php echo esc_attr($wpshare247_hotline); ?>" />
                                        </td>
                                    </tr>
                                    
                                    <!-- wpshare247_email -->
                                    <tr valign="top">
                                    	<td><strong><?php esc_html_e("Email", 'wpshare247.com'); ?></strong></td>
                                        <td>
                                        	<?php $wpshare247_email = get_option('wpshare247_email');?>
                                            <input style="width:100%" placeholder="hotro@tbay.vn" type="text" id="<?php echo esc_html('wpshare247_email'); ?>" name="<?php echo esc_html('wpshare247_email'); ?>" value="<?php echo esc_attr($wpshare247_email); ?>" />
                                        </td>
                                    </tr>
                                    
                                    <!-- wpshare247_address -->
                                    <tr valign="top">
                                    	<td><strong><?php esc_html_e("Địa chỉ", 'wpshare247.com'); ?></strong></td>
                                        <td>
                                        	<?php $wpshare247_address = get_option('wpshare247_address');?>
                                            <input style="width:100%" placeholder="303/41 Tân Sơn Nhì, Tân Phú, Hồ Chí Minh" type="text" id="<?php echo esc_html('wpshare247_address'); ?>" name="<?php echo esc_html('wpshare247_address'); ?>" value="<?php echo esc_attr($wpshare247_address); ?>" />
                                        </td>
                                    </tr>
                                    
                                    <!-- Khai báo thêm các trường tiếp theo tại đây 'wpshare247_ten_field_moi_cua_ban' -->
                                    
                                    <tr valign="top">
                                    	<td colspan="2"><?php submit_button(); ?></td>
                                    </tr>
                                </table>
                            </div>
                            
                        	
                        </form>
                    </div>
                    <div style="clear:both;"></div>
                </div>
            </div>
        </div>
    </div>
    <?php
}

//2. Đăng ký các field cho Theme Option
add_action('admin_init', 'wpshare247_register_option_fields' );
function wpshare247_register_option_fields(){
    //Khai báo các trường dữ liệu cho theme option tại đây
    register_setting( WS247_GE_FIELDS_GROUP, 'wpshare247_hotline');
    register_setting( WS247_GE_FIELDS_GROUP, 'wpshare247_email');
    register_setting( WS247_GE_FIELDS_GROUP, 'wpshare247_address');
    //Copy: register_setting( WS247_GE_FIELDS_GROUP, 'wpshare247_ten_field_moi_cua_ban');
}

//3. Lấy dữ liệu từ các theme option
//Lấy trường theo key, ví dụ:
$wpshare247_hotline = get_option('wpshare247_hotline');
echo 'Điện thoại: ' .$wpshare247_hotline;

$wpshare247_email = get_option('wpshare247_email');
echo 'Email: ' .$wpshare247_hotline;

$wpshare247_address = get_option('wpshare247_address');
echo 'Địa chỉ: ' .$wpshare247_hotline;

Tin Vui Cho Bạn:

Nếu như bạn muốn tiết kiệm thời gian cũng như sử dụng nhiều loại Field Option hơn, Hãy sử dụng Bộ Source chuẩn tạo Theme Option cho WordPress cực kì tiện ích với đầy đủ bộ Field: textbox, dropdown, media, editor, color picker, textarea, checkbox, multiple checkbox, radio, slider.

Hãy xem bài này nhé: https://wpshare247.com/source-chuan-theme-option-cho-wordpress-de-hieu-voi-day-du-cac-truong-field

Video hướng dẫn chi tiết tạo theme option trong WordPress

3. Vì sao phải tạo Theme Option WordPress để làm gì?

  • Dễ dàng quản lí cấu hình Website tại một chỗ.
  • Tự tùy chỉnh, custom theo ý mình.
  • Dễ dàng export, import khi chuyển đổi từ site này sang site khác.

4. Một số plugin cho theme options

Nếu bạn quá khó khăn khi phải tiếp cận đến các đoạn code trên. Bạn cũng có thể cài một số plugin WordPress hỗ trợ theme option như sau:

  • OptionTree
  • Redux Developer Mode Disabler
  • Options Framework
  • Simple Theme Options

Tuy nhiên bạn cẩn thận khi sử dụng các plugin theme option bởi tính tương thích các phiên bản WP rất thấp và hay xảy ra lỗi WordPress.

Hi vọng bài chia sẻ này giúp ích được cho các bạn rất nhiều trong lúc học WordPress nhé.

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
admin_initadmin_menutheme optiontùy chỉnh wordpress
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