Breaking

Friday, December 13, 2013

Cấu trúc theme WordPress

Vậy là phần quan trọng nhất trong khâu tự làm theme WordPress đã tới sau khi chúng ta đã trải qua các công đoạn cơ bản như viết mã HTML và CSS cho giao diện. Thực chất, việc làm một theme WordPress không khó nhưng cái khó nhất ban đầu là chúng ta sẽ bắt đầu như thế nào và quy trình lập trình theme WordPress ra sao.
Để có thể hiểu được và làm được, việc đầu tiên mà chúng ta cần quan tâm đến là hiểu được cấu trúc cơ bản của một theme WordPress. Thực tế, mỗi theme WordPress có thể có cấu trúc phức tạp hoặc đơn giản nhưng ít nhất là nó cũng sẽ có một số file bắt buộc nên trong bài này chúng ta cũng sẽ chỉ tập trung vào các file bắt buộc.

1. Cấu trúc cơ bản của một theme WordPress
Bạn hãy vào WordPress.org tải một theme bất kỳ về mở ra xem thì sẽ dễ dàng nhận ra nó thường có 1 số file bắt buộc sau:

Trong hình trên, mình đã ghi thiếu một file cực kỳ quan trọng đó là file style.css. File này mở ra thì thường ta sẽ thấy có những thông tin bắt buộc như sau:
Những thông tin trên nó sẽ hiển thị trong phần Appearance -> Themes. Nếu bạn muốn thử, hãy tạo 1 folder tên bất kỳ và tạo một file style.css rồi viết nội dung y chang đoạn bên trên. Bạn sẽ thấy trong phần theme của website bạn hiển thị theme ra rồi. Nhưng khi kích hoạt lên thì trang sẽ không có nội dung gì cả vì chúng ta chưa có gì hết. Đó là ý nghĩa của file style.css.

Ngoài ra, còn có một file khá quan trọng nữa là file screenshot.png. Mục đích của file này là sẽ hiển thị một hình ảnh thumbnail của theme trong phần chọn theme của website. File này phải được lưu dưới file type là PNG và phải có tên là thumbnail. Đó là quy tắc của WordPress.

2. Giao diện của WordPress sẽ bị cắt nhỏ ra từng file
Trước khi hiểu ý nghĩa của các file PHP thì mình nghĩ cần nhắc lại cho mọi người biết rằng cơ chế hoạt động của mỗi file là nó sẽ tự ráp lại với nhau để tạo thành một giao diện hoàn chỉnh. Ví dụ như ở phần trước ta đã làm một giao diện HTML cho theme thì tất cả mọi thứ ngoài trang chủ ta đều nhét vào file index.html.

Nhưng khi chuyển qua theme WordPress với kiểu file là PHP, chúng ta sẽ cắt nội dung bên trong đó thành nhiều file khác nhau (thường là 3). Ví dụ như file header.php sẽ bao gồm các thẻ từ html cho đến body, file footer.php sẽ từ #footer xuống cuối file.

Bạn có thể mở một theme nào đó ra và xem thử sẽ hiểu rõ hơn.

3. Ý nghĩa các file PHP trong cấu trúc theme
Chỉ có 2 file bắt buộc style.css và screenshot.png là không phải PHP. Còn lại tất cả các file đều là PHP hết vì WordPress được viết bằng ngôn ngữ PHP mà. Bây giờ chúng ta sẽ cùng phân tích đặc điểm của từng file.

header.php
File này được hiểu như nó có nhiệm vụ khai báo tất cả các thành phần ở đầu trang. Bao gồm thành phần không thấy được (thẻ head) và phần thấy được (thành phần hiển thị logo, menu,…).

index.php
File chứa code phần nội dung của trang chủ không bao gồm phần header và footer vì 2 phần đó đã có file riêng. Hơn nữa, nếu bạn muốn cho một code nào tự động làm trang chủ thì có thể đặt tên file đó là home.php hoặc frontpage.php.

footer.php
File này có thể hiểu đơn giản là nó sẽ chứa các đoạn code in nội dung phần chân trang và bao gồm các thẻ đóng của html và body.

archive.php
File này sẽ hiển thị nội dung của các bài viết khi được phân loại bằng tag, category hoặc bất kỳ taxonomy khác. Nếu bạn muốn các bài viết liệt kê theo kiểu giống nhau thì có thể chỉ cần tạo file này là được. Nhưng nếu bạn muốn cho hiển thị danh sách bài viết trong tag hiển thị khác với bài viết trong category thì có thể tạo ra thêm 2 file tag.php và category.php. Lúc này khi bạn vào xem danh sách bài trong một category thì nó sẽ gọi file category.php ra và tương tự như thế với tag.

Ngoài ra nếu bạn muốn làm giao diện khác nhau ở mỗi category thì có thể tạo thêm file category-{ID}.php và đặt ID tương ứng với ID category. Bạn có thể làm tương tự với tag. Tips này dành cho những ai muốn làm giao diện hiển thị bài ở các category khác nhau.

404.php
Đơn giản là sẽ in nội dung của trang 404 ra. Bạn không nhất thiết phải sử dụng hàm của WordPress trong này, cứ viết cái gì vào mà bạn thích.

comments.php
File hiển thị comment form và nội dung comment.

page.php
Hiển thị nội dung khi xem Page. Bạn cũng vẫn có thể làm nhiều kiểu page khác nhau bằng Custom Page Template hoặc đặt tên file pà page-{ID}.php.

single.php
Hiển thị nội dung của Post, hay còn gọi là bài viết. Thường thì code file này cũng giống file page.php.

search.php
Hiển thị danh sách các bài viết trong trang kết quả tìm kiếm. Code cũng có phần giống với file archive.php

functions.php
Là một file khá quan trọng để bạn custom theme bằng filter và action hoặc tất cả những cái khác mà bạn có thể viết bằng PHP. Mặc định chúng ta không cần viết gì vào đây nhưng trong quá trình làm theme sẽ chắc chắn viết linh ta linh tinh vào.

Nói chung, thì khi bạn viết code vào file này thì nó sẽ tự động thực thi trong theme, bất cứ cái gì. Và nếu bạn cần include một file PHP khác vào thì bạn cũng include vào file này.

Lời kết
Đó là tất cả những gì mình cần bạn biết qua để trước khi bắt đầu viết những đoạn code bằng PHP để làm một giao diện WordPress. Cấu trúc theme trong WordPress khá linh hoạt mà nếu bạn hiểu rõ nó thì có thể rất có ích trong việc tuỳ biến hay tự làm một theme rất chuyên nghiệp.

No comments:

Post a Comment