- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Bạn đã biết về các theme framework trong số đó là plugins hoặc là child theme, vậy child theme được hiểu như thế nào? Child theme là một theme mà kế thừa các tính năng từ một theme khác. Theme khác ở đây chính là theme framework vừa đề cập ở trên ->và được gọi là Parent theme.
Chú ý: Parent theme không kích hoạt mà dùng cho child theme kế thừa, còn kích hoạt Child theme.
Khi bạn muốn kế thừa và sửa đổi 1 theme khác thì sử dụng Child theme, đây là cách tốt nhất.
Cách tạo child theme
Tạo 1 folder làm child theme nằm cùng vị trí với parent theme. Mở style.css của child theme, và điền nội dung sau:
/* Theme Name: Child theme name Theme URI: http://example.com/twenty-thirteen-child/ Description: child theme description Author: Hoangweb.com Author URI: http://hoangweb.com Template: twentythirteen //not allow space, folder of parent theme Version: 1.0.0 */ @import url("../twentythirteen/style.css"); /* =Theme customization starts here -------------------------------------------------------------- */
Dòng “Template” bạn khai báo tên theme làm parent theme, child theme sẽ kế thừa parent theme này. Lưu ý: tên theme thì không viết cách (folder name of parent theme). Tên theme có thể sử dụng ký tự hyphen “-“, ie: example-theme-name
– Dòng @import url để kế thừa css từ parent theme, nhập địa chỉ style.css tương ứng đến parent theme. Ok đã tạo xong child theme, để kích hoạt child theme vào Appreance->themes và kích hoạt theme vừa tạo.
Template Files
Child theme sẽ kế thừa functions.php và các template khác như header.php, footer.php.. từ parent theme, nếu không muốn dùng template cùa parent theme thì tạo mới tương ứng trong child theme. Ví dụ: mình tạo mới header.php
thì tạo file child-theme/header.php
như vậy khi chạy website theme sẽ sử dụng header.php trong child theme.
Tính năng override template files ở child theme sẽ không đúng với functions.php, đây là file chứa toàn bộ code sử lý cho theme. Child theme sẽ nạp cả child-theme/functions.php và parent-theme/functions.php và nên cẩn trọng khi định nghĩa hàm trong 2 file này. Chú ý: functions.php trong child theme sẽ nạp trước.
Vì lý do này, bạn cần kiểm tra xem hàm định nghĩa trong parent theme functions.php có tạo trước đó trong child theme functions.php không và có thể thay thế hàm PHP trong parent theme:
#your-parent-theme/functions.php if ( ! function_exists( 'your_function' ) ) { function your_function() { // Do something. } }
Including Files trong Child Theme
Điểm lưu ý khi dùng child theme, thông thường để include file bạn dùng:
include_once(get_template_directory().'/my_included_file.php');
– get_template_directory(): trả về đường dẫn tới parent theme. Trong trường hợp này phải dùng hàm get_stylesheet_directory sẽ trả về đướng dẫn folder tới child theme.
get_stylesheet_directory();
Chi tiết về child theme: http://codex.wordpress.org/Child_Themes
Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể theo dõi blog này trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Pháp says
Muốn copy file header.php sang child theme để paste code google annalytics thì làm sao Ad. Em vào trong file manager, vào theme mẹ để tìm file này ở đâu ạ.