Child Theme Là Gì? Cách Tạo Child Theme WordPress Cho Người Mới

Child theme là gì và vì sao nhiều hướng dẫn WordPress khuyên bạn nên dùng nó trước khi sửa giao diện? Nếu bạn từng chỉnh màu, font hay code trong theme rồi bấm cập nhật và thấy mọi thay đổi biến mất, thì child theme chính là cách giải quyết. Bài viết này giải thích child theme là gì theo cách dễ hiểu và hướng dẫn tạo child theme WordPress từng bước cho người mới.

Child theme là gì?

Child theme (theme con) là một theme phụ thừa hưởng toàn bộ giao diện, chức năng và cách hiển thị của một theme khác, gọi là parent theme (theme cha). Child theme chỉ chứa những phần bạn muốn thay đổi, còn mọi thứ khác vẫn lấy từ theme cha.

Khi WordPress hiển thị trang web, hệ thống sẽ ưu tiên tìm file trong child theme trước. Nếu không có, WordPress dùng file tương ứng trong theme cha. Nhờ vậy, bạn có thể tùy biến giao diện mà không đụng vào code gốc của theme cha.

Ví dụ dễ hình dung: theme cha giống như một căn nhà hoàn chỉnh, còn child theme là lớp sơn và đồ nội thất bạn tự thêm vào. Khi chủ thầu sửa móng hay mái nhà (cập nhật theme cha), lớp trang trí của bạn vẫn được giữ nguyên.

Vì sao nên dùng child theme WordPress?

Lý do quan trọng nhất là cập nhật theme không làm mất phần chỉnh sửa. Khi theme cha có bản mới, WordPress ghi đè toàn bộ thư mục theme cha. Mọi dòng code bạn sửa trực tiếp trong đó sẽ bị xóa. Child theme nằm ở thư mục riêng nên không bị ảnh hưởng.

  • Giữ được bản cập nhật bảo mật: bạn vẫn cập nhật theme cha thoải mái để nhận bản vá lỗi mà không sợ mất tùy biến.
  • Dễ quản lý: mọi thay đổi tập trung ở một chỗ, dễ kiểm tra và dễ quay lại khi có lỗi.
  • An toàn khi thử nghiệm: nếu child theme gặp lỗi, bạn chỉ cần kích hoạt lại theme cha để website trở về trạng thái ban đầu.
  • Học WordPress tốt hơn: làm việc với child theme giúp bạn hiểu cấu trúc theme và cách WordPress tải giao diện.

Khi nào không cần child theme?

Không phải website nào cũng bắt buộc dùng child theme. Bạn có thể bỏ qua nếu:

  • Bạn chỉ đổi màu, font, logo, menu bằng mục Giao diện → Tùy biến (Customizer) hoặc trình chỉnh sửa giao diện có sẵn. Các thiết lập này được lưu trong cơ sở dữ liệu, không mất khi cập nhật theme.
  • Bạn chỉ thêm vài dòng CSS nhỏ. Ô CSS bổ sung (Additional CSS) trong Customizer đã đủ dùng.
  • Bạn chỉ thêm đoạn code chức năng. Trường hợp này có thể dùng plugin quản lý code snippet thay vì sửa file theme.

Child theme thực sự cần thiết khi bạn muốn sửa file template (như header.php, single.php), thêm nhiều hàm vào functions.php hoặc viết lượng CSS lớn.

Cấu trúc của một child theme

Một child theme cơ bản chỉ cần 2 file đặt trong một thư mục riêng tại wp-content/themes/:

File Vai trò Bắt buộc?
style.css Khai báo tên child theme và theme cha, chứa CSS tùy biến Có
functions.php Tải CSS của theme cha và thêm chức năng mới Nên có (theme cổ điển)
screenshot.png Ảnh xem trước hiển thị trong mục Giao diện Không
theme.json Tùy biến màu, font, bố cục cho block theme Không (dùng với block theme)

Dòng quan trọng nhất là Template trong file style.css. Giá trị này phải trùng chính xác với tên thư mục của theme cha (ví dụ astra, generatepress, twentytwentyfive), không phải tên hiển thị của theme.

Cách tạo child theme WordPress thủ công

Cách này phù hợp nếu bạn có quyền truy cập File Manager trên hosting hoặc dùng FTP. Trước khi bắt đầu, hãy sao lưu website. Nếu chưa biết cách, bạn có thể xem hướng dẫn sao lưu website WordPress miễn phí.

Bước 1: Tạo thư mục child theme

Vào wp-content/themes/, tạo thư mục mới. Nên đặt tên theo dạng tên theme cha thêm hậu tố “-child”, ví dụ astra-child. Tên thư mục không dấu, không khoảng trắng.

Bước 2: Tạo file style.css

Trong thư mục vừa tạo, tạo file style.css với nội dung mẫu sau (đổi Template thành tên thư mục theme cha của bạn):

/*
Theme Name: Astra Child
Template: astra
Description: Child theme cho Astra
Version: 1.0.0
Text Domain: astra-child
*/

Hai dòng bắt buộc là Theme Name và Template. Các dòng còn lại giúp bạn dễ quản lý.

Bước 3: Tạo file functions.php để tải CSS theme cha

Với theme cổ điển, child theme cần tải file CSS của theme cha để giữ nguyên giao diện. Tạo file functions.php với nội dung:

<?php
add_action( 'wp_enqueue_scripts', 'child_theme_enqueue_styles' );
function child_theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}

Một số theme đã tự tải CSS đúng cách cho child theme, nên hãy kiểm tra tài liệu của theme. Nếu giao diện bị lặp CSS hoặc vỡ bố cục sau khi kích hoạt, nguyên nhân thường nằm ở bước này.

Bước 4: Kích hoạt child theme

Vào Giao diện → Giao diện trong trang quản trị, bạn sẽ thấy child theme mới. Bấm Kích hoạt, sau đó mở website để kiểm tra giao diện có giống như khi dùng theme cha hay không.

Lưu ý: một số thiết lập trong Customizer (menu, widget, màu sắc) có thể cần cấu hình lại sau khi chuyển sang child theme vì WordPress lưu chúng theo từng theme.

Cách tạo child theme bằng plugin hoặc công cụ có sẵn

Nếu không quen làm việc với file, bạn có thể dùng cách đơn giản hơn:

  • Tải child theme từ nhà phát triển theme: nhiều theme phổ biến như Astra, GeneratePress, Kadence cung cấp sẵn child theme hoặc công cụ tạo child theme trên trang chủ. Bạn chỉ cần tải file .zip về rồi cài qua Giao diện → Thêm mới → Tải giao diện lên.
  • Plugin Child Theme Configurator: plugin miễn phí trên thư viện WordPress.org, cho phép chọn theme cha và tạo child theme qua vài cú nhấp chuột.
  • Plugin Create Block Theme: do nhóm WordPress phát triển, dùng cho block theme (như Twenty Twenty-Four, Twenty Twenty-Five). Plugin có tùy chọn tạo child theme từ theme đang dùng.

Sau khi tạo xong child theme bằng plugin, bạn có thể tắt hoặc gỡ plugin nếu không cần dùng thêm. Child theme vẫn hoạt động bình thường.

Child theme với block theme khác gì theme cổ điển?

Block theme (theme hỗ trợ Full Site Editing) lưu phần lớn thiết lập trong file theme.json và các template dạng HTML. Với loại theme này:

  • Child theme vẫn cần file style.css có dòng Template.
  • Thường không cần tải CSS theme cha bằng functions.php như theme cổ điển.
  • Bạn có thể thêm file theme.json riêng trong child theme để ghi đè màu, font, khoảng cách.

Nếu bạn đang phân vân nên dùng theme nào làm nền tảng, tham khảo bài cách chọn theme WordPress cho blog trước khi tạo child theme.

Lỗi thường gặp khi dùng child theme

Lỗi Nguyên nhân thường gặp Cách xử lý
Báo “theme bị hỏng” hoặc thiếu theme cha Dòng Template sai tên thư mục, hoặc theme cha chưa được cài Kiểm tra lại tên thư mục theme cha và cài theme cha
Giao diện mất định dạng Chưa tải CSS theme cha Kiểm tra lại file functions.php
Trang trắng sau khi sửa functions.php Lỗi cú pháp PHP Sửa hoặc xóa đoạn code lỗi qua File Manager/FTP
CSS mới không có tác dụng Bộ nhớ đệm (cache) hoặc CSS bị ghi đè Xóa cache plugin, cache trình duyệt và kiểm tra độ ưu tiên CSS

Một mẹo hữu ích: luôn giữ theme cha được cài trên website. Nếu xóa theme cha, child theme sẽ không hoạt động.

Chuẩn bị hosting phù hợp trước khi tùy biến theme

Để tạo child theme thủ công, bạn cần hosting có File Manager hoặc hỗ trợ FTP, và tốt nhất có sẵn công cụ sao lưu. Hầu hết gói shared hosting cho WordPress hiện nay đều đáp ứng. Nếu bạn đang tìm hosting để bắt đầu blog, Hostinger là một lựa chọn có trình quản lý hPanel kèm File Manager và cài WordPress nhanh. Bạn có thể tham khảo qua Hostinger (link giới thiệu). Đây là link giới thiệu, blog có thể nhận hoa hồng nếu bạn mua qua link mà giá của bạn không thay đổi.

Câu hỏi thường gặp (FAQ)

Child theme có làm website chậm hơn không?

Child theme cơ bản gần như không ảnh hưởng đến tốc độ. Website chỉ chậm hơn nếu bạn thêm nhiều code hoặc tải CSS/JS không cần thiết trong child theme.

Đang dùng theme cha, chuyển sang child theme có mất dữ liệu không?

Bài viết, trang, hình ảnh và plugin không bị ảnh hưởng. Tuy nhiên một số thiết lập Customizer như menu, widget có thể cần gán lại. Nên sao lưu trước khi chuyển.

Có thể tạo child theme cho một child theme khác không?

Không. WordPress chỉ hỗ trợ một cấp: theme cha và theme con. Bạn không thể tạo “theme cháu” từ child theme.

Cập nhật theme cha có cần cập nhật child theme không?

Thông thường không cần. Chỉ khi theme cha thay đổi lớn ở file template mà bạn đã ghi đè trong child theme, bạn mới cần kiểm tra và chỉnh lại file đó.

Kết luận

Hiểu child theme là gì giúp bạn tùy biến WordPress an toàn hơn: chỉnh sửa thoải mái mà vẫn cập nhật theme cha để nhận bản vá bảo mật. Nếu chỉ đổi vài thiết lập nhỏ, Customizer là đủ; còn khi cần sửa template hay thêm nhiều code, hãy tạo child theme theo các bước ở trên.

Hãy sao lưu website, tạo child theme cho theme bạn đang dùng ngay hôm nay và thử thay đổi một chi tiết nhỏ để làm quen. Nếu thấy bài viết hữu ích, đừng quên theo dõi blog để đọc thêm các hướng dẫn WordPress cho người mới.

Để lại một bình luận