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: Vinastar.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
Để nhận được bài viết mới vui lòng đăng ký kênh kiến thức WordPress từ A-Z ở Form bên dưới. Bạn cũng có thể nhận được sự trợ giúp trên Twitter và Facebook
Liên hệ
Công ty chuyên Thiết kế website uy tín nhất Miền Bắc: http://vinastar.net
Hotline tư vấn: 0989 48 3456
Nguồn: Sưu tầm trên internet