Viết một theme WordPress từ đầu là một quá trình bao gồm nhiều bước, từ việc tạo các tệp cơ bản đến việc thêm chức năng nâng cao. Hướng dẫn dưới đây sẽ giúp bạn từng bước tạo một theme WordPress đơn giản nhưng đầy đủ các tính năng cơ bản, kèm theo ví dụ mã cụ thể.
Trước tiên, bạn cần một môi trường phát triển WordPress trên máy tính của mình. Các bước thiết lập môi trường bao gồm:
wp-content/themes
.my-custom-theme
trong wp-content/themes
.style.css
index.php
functions.php
style.css
Tệp style.css
giúp định nghĩa kiểu dáng (CSS) và cũng là nơi chứa thông tin về theme của bạn, giúp WordPress nhận diện.
style.css
:index.php
functions.php
Tệp functions.php
cho phép bạn thêm các chức năng tùy chỉnh vào theme. Bạn có thể sử dụng nó để thêm menu, widget, hoặc enqueue các file CSS/JavaScript.
functions.php
:single.php
page.php
(hiển thị trang đơn lẻ):header.php
footer.php
:sidebar.php
Bạn có thể thêm các tùy chọn tùy chỉnh thông qua Customizer để người dùng dễ dàng chỉnh sửa theme từ WordPress Admin.
function mytheme_customize_register( $wp_customize ) { $wp_customize->add_section( 'mytheme_colors' , array( 'title' => __( 'Theme Colors', 'mytheme' ), 'priority' => 30, ) ); $wp_customize->add_setting( 'header_color' , array( 'default' => '#000000', 'transport' => 'refresh', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'header_color', array( 'label' => __( 'Header Color', 'mytheme' ), 'section' => 'mytheme_colors', 'settings' => 'header_color', ) ) ); } add_action( 'customize_register', 'mytheme_customize_register' );
Khi tạo theme, bạn cũng có thể sử dụng hình ảnh nổi bật (thumbnail) cho các bài viết.
// Hỗ trợ post thumbnail add_theme_support( 'post-thumbnails' ); // Hiển thị thumbnail trong index.php if ( has_post_thumbnail() ) { the_post_thumbnail(); }
Tạo theme WordPress từ đầu là một quá trình thú vị giúp bạn tùy chỉnh giao diện và chức năng của website. Hướng dẫn trên cung cấp cho bạn cái nhìn tổng quát và mã mẫu để bắt đầu. Sau khi nắm vững các bước cơ bản này, bạn có thể mở rộng với các tính năng nâng cao hơn như tùy chỉnh qua Customizer, tạo các post type riêng, hoặc tích hợp API.