Child Themes là gì? Cách tạo Child Themes trong Worpdress

Trước nay mình đã từng tìm hiểu Child Themes là gì và dùng Child Themes để làm gì trong một thời gian dài, nhưng vẫn chưa có kết quả. Ngày hôm nay mình đã tìm được câu trả lời cho mình và mình cũng muốn chia sẻ nó cho các bạn đang tìm hiểu nó. Đồng thời mình viết bài này để ghi nhớ, khi cần thiết mình sẽ có cái để ngâm cứu lại :D. Kiến thức mình chia sẻ ở bài viết này có thể hiểu là kiến thức wordpress cơ bản, nếu bạn cần tìm hiểu về Child Themes sâu hơn thì bạn có thể đọc bài viết này tại website của wordpress.

Child Themes là gì?

Child theme for wordpress
Cấu trúc của Child theme
1: Thư mục theme gốc (theme cha)
2: Thư mục child theme

Child theme trong wordpress là theme được kế thừa các chức năng và các thuộc tính của một theme khác và theme khác đó được gọi là theme cha. Child theme cho phép bạn chỉnh sửa hoặc thêm một chức năng nào đó vào theme cha.

Tại sao phải dùng Child Themes?

Nếu bạn chỉnh sửa một theme theo cách thông thường thì khi theme đó được cập nhật, tất cả những chỉnh sửa của bạn sẽ bị mất hết. Chính vì thế bạn cần phải sử dụng một child theme, bạn viết code chỉnh sửa vào child theme và khi theme cha được cập nhật thì những gì bạn đã chỉnh sửa trước đó sẽ không ảnh hưởng gì.

Tạo Child Themes đơn giản

Bước 1: Tạo một thư mục bên trong thư mục chứa theme (mặc định là wp-content/themes) và sẽ sử dụng thư mục này để làm child theme. Bạn đặt tên nó theo ý của bạn. Để khi chỉnh sửa bạn nên đặt tên thư mực với “-child” ở cuối, để biết đây là child theme của theme nào.
Nhìn vào hình ảnh của tôi, bạn sẽ thấy tôi có theme “hueman-child”. Vâng, nó chính là child theme của theme gốc hueman.

Bước 2: Trong thư mục của child theme, bạn tạo một file css với tên style.css. Nội dung file style.css bạn viết theo cấu trúc bên dưới.

/*
 Theme Name:   Hueman Child
 Theme URI:    https://thanhthai.org
 Description:  Theme con của Hueman
 Author:       Thái Dương
 Author URI:   https://thanhthai.org
 Template:     hueman
 Version:      1.0.0
*/
@import url("../hueman/style.css");

/* Bạn viết code css vào bên dưới dòng này
-------------------------------------------------------------- */

Bạn cần chú :

Dòng số 7: Là tên của thư mục theme gốc. Ở ví dụ trên, thư mục theme gốc là hueman.

Dòng số 10 là đường dẫn đến file style.css của theme cha.

Bạn phải viết code css cho website của bạn dưới dòng @import url(“../hueman/style.css”); , nếu viết bên trên thì website của bạn không còn mang tính kế thừa của theme gốc nữa.

Child Theme hoạt động như thế nào?

Bạn active child theme theo cách active theme thông thường: Đăng nhập Administration Panels > Appearance > Themes. Bạn sẽ nhìn thấy child theme vừa tạo. Bấm Activate.

Active child theme wordpress
Active child theme wordpress

Sau khi child theme được active thì nó sẽ gọi và sử dụng các file trong thư mục child theme (nhìn ví dụ trên thì nó sẽ gọi file stye.css trong thư mục hueman-child để sử dụng) Trong quá trình sử dụng, nó nếu trong thư mục child theme không có các file cần thiết (ví dụ như funcitons.php, thư mục images) thì hệ thống wordpress sẽ tự động sử dụng bên thư mục theme gốc (là thư mục hueman). Nói tóm lại là wordpress theme sẽ ưu tiên child theme trước, nếu trong child theme thiếu cái gì thì nó sẽ sử dụng bên theme gốc.

Lưu ý

  • Không được xóa hay đổi tên thư mục theme gốc (theme cha)
  • Muốn tùy chỉnh file nào bạn chỉ cần copy từ bên theme gốc sang thư mục child theme.
  • Khi viết css phải luôn viết dưới dòng @import

Tạo child theme bằng plugin

  • http://wordpress.org/plugins/child-themify/
  • http://wordpress.org/plugins/orbisius-child-theme-creator/
Child Themes là gì? Cách tạo Child Themes trong Worpdress
4 (80%) 4 votes

Người dùng quan tâm

  • tại soa phải cài theme con

Bài viết nên đọc

Tác giả: Thái Dương
Tôi là Dương Thành Thái, tốt nghiệp chuyên ngành CNTT nhưng bản thân lại thích kinh doanh và kiếm tiền trên internet. Công việc hiện tại của tôi là Freelancer nghĩa là ai thuê tôi làm gì là tôi làm cái đó :p

29 Comments

  1. sau khi tạo child theme thành công thì file style.css ở thư mục gốc hoạt động, giờ muốn ghi đè các file *.css ở trong thư mục childthem/css/ thì làm sao ạ.

    1. Vậy nghĩa là trong file style.css của child theme bạn ko tùy chỉnh gì sao? Nếu vậy thì ko cần tạo child theme :p.
      Như mình đã nói ở trên, trong thư mục child theme có những file nào thì nó sẽ được ưu tiên sử dụng trong child theme trước, thiếu file nào thì nó sẽ lấy bên theme gốc (theme cha) để dùng. Ý bạn là ko muốn các file child-theme/*.css hoạt động, vậy thì bạn chỉ cần không copy các file *.css bên thư mục theme gốc sang là đc.

        1. Dùng code luôn 🙂 Code đây nhé.
          <form onsubmit=”window.open(‘http://feedburner.google.com/fb/a/mailverify?uri=Thaidt’, ‘popupwindow’, ‘scrollbars=yes,width=550,height=520’);return true” target=”popupwindow” method=”post” action=”http://feedburner.google.com/fb/a/mailverify” id=”femail”><p>Enter your email address:</p><p><input type=”text” name=”email” id=”nhapemail”></p><input type=”hidden” name=”uri” value=”Thaidt”><input type=”hidden” value=”en_US” name=”loc”><input type=”submit” value=”Subscribe” id=”xacnhan”></form>

          ĐÂy là CSS.
          form#femail {
          background: none repeat scroll 0 0 #357212;
          color: #ffffff;
          font-weight: bold;
          padding: 10px;
          text-align: center;
          }
          Thay id bằng id fedd của bạn nhé

          1. Mình lấy cái trên bỏ vào thì nó bị ra mấy khung nhập chứ ko ra như bạn, còn cái css để làm gì thế

          2. Bạn bỏ nó vào đâu?
            CSS để trang trí cho cái khung nhập đó :D. Nhờ nó mà bạn mới có đc cái giao diện màu xanh giống của mình

    1. Có thể trong options của theme sẽ có, nhưng mình chưa xem qua :D.
      Cách đơn giản nhất là bạn mở file header.php ra, xóa từ dòng 27 đến dòng 36 là xong :D.

  2. Hay lắm bác. Mình chưa từng làm child theme. Sử dụng thì từng dùng qua. Từ lúc dùng WordPress đến giờ mình dùng Framework Hybrid, mình toàn phát triển từ Base theme lên.

    Mình xin bổ sung một tí lưu ý, theme ban đầu phải cung cấp các hook thì child theme mới dễ dàng tùy biến. Tùy theme mới có thể làm child theme được. Không thì làm child theme rất khó khăn.

  3. thank tác giả đã chia sẻ. mình cũng đang nghiên cứu làm cái Framework cho riêng mình chứ mỗi lần thiết kế lại web kiểu này vất vả quả 🙂

  4. Chào bạn có thể huớng dẫn mình làm menu mobile như của bạn không, nó rất đẹp cảm ơn bạn truớc nha

  5. Bạn có biết tích hợp wordpress vào website asp.net ko, bên mình đáng loay hoay vụ này mãi mà chưa biết làm sao

Leave a Reply

Your email address will not be published. Required fields are marked *

Đăng ký nhận tin
Tặng quà đặc biệt

Đăng ký nhận tin tức mới từ Thái blog, có quà tặng bạn nhé

Cảm ơn bạn đã đăng ký

Đã xảy ra lỗi