Đây sẽ là một chủ đề dài hơi! Bởi chúng ta sẽ cùng nhau làm việc trong vấn đề Theme – một thành phần mà mình nghĩ nhiều bạn theo dõi NhanWeb sẽ quan tâm. Câu trả lời cho câu hỏi “tự thiết kế theme cho WordPress ?” bạn sẽ tìm ra sau khi chúng ta kết thúc loạt bài này.
Để bắt đầu, mình cũng xin chia sẻ với mọi người là mình thích mọi người vừa đọc vừa thực hiện. Do đó, mình sẽ chia bài viết này ra làm nhiều phần và viết dần dần từng phần. Chắc khoảng mất gần 1 tháng đấy ! Nhưng đừng lo, bạn sẽ có thời gian nghiên cứu, tìm hiểu và rút ra những bài học cho mình. Nếu bạn cảm thấy mình có thể tiếp thu nhanh, bạn có thể tự học qua Document về giao diện được WordPress chia sẻ sẵn rồi.
Phụ mục
Bắt đầu
Trong phần đầu tiên này, mình sẽ nói về những thứ căn bản nhất trong WordPress. bao gồm:
- Qui luật căn bản khi thiết kế theme WordPress
- Một số khái niệm được nhắc đến thường xuyên trong WordPress và theme
- Cấu trúc cơ bản của theme
Các phần tiếp theo sẽ đi sâu vào từng thứ một và cả cách để bạn thiết kế.
Qui luật căn bản
Qui luật 1: viết HTML cho đúng
Đây là cái căn bản nhất và cũng là quan trọng nhất mà mình muốn nói đến. Mọi website đều trả về HTML nên việc viết đúng HTML là một điều cần thiết. Hãy so sánh 2 ví dụ dưới đây:
Trong WP hay bất kì website nào, bạn cần tuân thủ các qui tắc viết HTML: mỗi tag HTML thường có dấu < và dấu >. Kết thúc tag được đánh dấu khác với mở đầu bằng một slash(/). Trong thiết kế giao diện WordPress, tag ul và li là 2 tag được sử dụng nhiều nhất. Căn cứ vào đó đó bạn có thể thiết kế giao diện và viết CSS.
Qui luật 2: một theme WordPress phải có ít nhất 2 file: index.php và style.css
Mọi theme wordpress đều chứa ít nhất 2 file này dù bạn có muốn hay không. Bạn viết một theme, theme của bạn sẽ gọi file index.php để lấy dữ liệu và định dạng dữ liệu được bạn thiết kế trong style.css. Ngoài ra, các thành phần khác cần hay không cần là do cách bạn xây dựng theme theo cách của mình. Dưới đây là danh sách các file thường có hoặc theo chuẩn thiết kế theme của WordPress đề nghị:
- style.css
- index.php
- home.php
- single.php
- page.php
- archive.php
- category.php
- search.php
- 404.php
- comments.php
- comments-popup.php
- author.php
- date.php
Chi tiết những file này làm công việc gì mình sẽ nói sau ở phần viết nội dung cho từng file hoặc bạn có thể tìm hiểu thêm ở Document về giao diện mà mình đã nói đến ở trên.
Một số khái niệm
Bạn là một nhà thiết kế giao diện cho WordPress bạn không thể không biết những khái niệm dưới đây:
- Template: một đoạn code được viết dưới dạng một hàm hoặc một file mà bạn có thể sử dụng lại nhiều lần.
- Template file: đơn giản là các file tạo nên một theme của giao diện. Những file mà mình liệt kê ở trên có thể được hiểu là các template file.
- Theme hoặc WordPress theme: giao diện WordPress được gọi là theme. Bao gồm nhiều file và thư mục chứa hình ảnh, mã lập trình, mã giao diện, mã javascript… giúp hình thành nên giao diện bên ngoài.
- Post: hiện tại bạn đang xem một bài viết. Và bài viết này trong wordpress được hiểu là một Post.
- Page: khác với post, Page là một trang riêng biệt và không nằm trong một danh mục nào cả. Page mà chúng ta đang nói khác với page (trang – dùng để phân trang). Bạn có thể hiểu Page như một phần nội dung ít thay đổi và được đưa ra nhằm phân biệt với các phần Post mà bạn thường xuyên viết (ví dụ như Page liên hệ, Page giới thiệu tác giả…). Khái niệm này khác với khái niệm phân trang (page) ở chỗ nó được viết hoa chữ P.
Cấu trúc một theme WordPress
Khi bạn xây dựng một theme WordPress hoàn tất, file index.php, style.css sẽ làm nhiệm vụ thực thi các mã lệnh tương ứng nhằm trình bày dữ liệu và xuất bản dữ liệu cho người dùng. Để công việc đỡ rối rắm, người ta thường chia ra nhiều template file theo tính năng và công dụng. Mỗi template file sẽ được chèn vào file index.php để làm công việc tương ứng với chức năng của nó.
Sử dụng template tối giản, chúng ta có những template file như hình dưới đây:
Theo như hình phía trên, chúng ta có các file template chức năng như sau:
- index.php: file thực thi chung và được triệu gọi ở tất cả mọi trang. File này trình bày dữ liệu cơ bản của một giao diện
- single.php: trình bày dữ liệu cho một Post
- page.php: trình bày dữ liệu cho một Page
- archive.php: đây là trang trình bày cho các bài viết được đưa vào dạng lưu trữ.
- search.php: trang tìm kiếm hoặc kết quả tìm kiếm.
- 404.php: nếu liên kết không tồn tại, trang này sẽ hiện ra.
Ngoài ra còn rất nhiều nội dung khác như tôi đã mô tả ở phần qui luật 2. Tuy nhiên, bạn có thể chèn những nội dung đó vào index.php luôn nếu muốn.
Kết thúc phần này ở đây. Giờ các bạn hãy mở các template của WordPress bạn đang có và xem thêm các cấu trúc thường gặp của nó. Bạn cũng nên report lại bài viết này bằng cách liệt kê các cấu trúc thường gặp của bạn hoặc các template file mà bạn chưa rõ tính năng. Mình sẽ cố giải thích cho bạn…
Nguyen Khanh Hung says
Mình thấy header.php, footer.php cũng hay xuất hiện trong các theme
Nguyễn Duy Nhân says
Bác có thể hiểu nó là 1 dạng template file dùng để tối ưu quá trình viết code. header.php và footer.php được sử dụng nhằm giúp cho file index.php đơn giản hơn, dễ đọc hơn khi xử lý các sự kiện trên đó. Nếu sử dụng header.php và footer.php chúng ta sẽ tập trung index.php vào việc xử lý các tác vụ chính trong trang mà thôi. Như vậy, việc xem và đọc code sẽ dễ dàng hơn. Còn về bản chất, footer.php và header.php cũng được include vào index.php khi thực thi mã lệnh.
HocPham says
>:D< bác nhanweb. mình rất thích chủ đề này. từ này sẽ ghé thăm thường xuyên để đọc tuts về design themes ;):x
Ha Thanh says
Hồi trước mình cũng thích design lắm nhưng không theo nổi. Cũng có nhiều lý do. Giờ chỉ tập tành viết blog chẳng dám code. :D
CAA says
Nếu em chưa biết gì liệu em có học và làm được ko bác? =P~
Nguyễn Tuấn Đạt says
Muốn biết thì hỏi, muốn giỏi thì học
Không có gì là không được hết bạn
Quan trọng là phải kiên nhẫn :) :P
Kẻ giấu mặt says
Tuyệt với lắm bác ạ. Bài viết rất có tâm huyết. Cảm ơn bác nhé. ;):x
Ha Thanh says
Chưa biết gì thì học theo series của nhanweb là okie một phần nào mà.
Nguyen Ngoc Long says
thiet ke theme wordpress khá hay. Các bạn nên tham khảo và học hỏi từ website này.
Tran thang says
Chao ban! Ban co the giup minh chuyen nay duoc ko? Minh dag xai theme hybrid news nhug minh ko biet kich hoat tinh nang slide feature cua theme(giog trag chu cua ban). Ban co the huog dan minh dc ko? Cam on ban nhieu!
Lão Còi ™ says
Thank bạn đã chia sẻ, Blog bạn hay lắm
microsofttech says
Nói về template!>.< Mình đang rất muốn đổi blog sang template thesis hay genesis tại thấy ai cũng dùng và nhìn đẹp wa'; nhưng 1 nỗi mình chẳng lựa được cái nào :beat: Kết thằng ku Autahualpha vì đơn giản và tiện ích, đi kèm là một tá dày đặc option :D Nói chung là kết ;):x
Bành Quang Hùng says
Cảm ơn bạn, mình đang tập làm theme wordpress và mình tìm được bài này. Chỉ mới đọc qua 1 lần nhưng mình đã cảm nhận được sự tâm huyết của bạn.
Cảm ơn rất nhiều!