[Lập trình theme WordPress] Viết code cho trang lưu trữ và 404

[Lập trình theme WordPress] Viết code cho trang lưu trữ và 404

Hướng dẫn cách viết code hiển thị cho các trang lưu trữ của tag, category, trang tác giả và trang kết quả tìm kiếm. Xem viết code cho trang lưu trữ và 404

https://www.youtube.com/watch?v=HqaE17oDbOQ

Một việc khá quan trọng nữa để một theme có thể hiển thị tốt đó là giao diện cho các trang lưu trữ (archive). Các trang lưu trữ bao gồm các trang hiển thị các bài viết trong taxonomies như Tag, Category, Lưu trữ theo thời gian và cả trang riêng của từng tác giả.

Trong phần này, chúng ta sẽ code cho 3 template đó là archives.php, author.php, search.php và 404.php, trong đó:

  • archive.php – Template chung dành cho các taxonomy.
  • author.php – Template dành cho trang riêng của từng tác giả, nếu không có file này nó sẽ load file archive.php.
  • search.php – Template dành cho trang hiển thị kết quả tìm kiếm.
  • 404.php – Template hiển thị thông báo lỗi 404 trên website WordPress. Bạn đừng nhầm lẫn với lỗi 404 của webserver nhé.

Code cho trang archive.php

Trước tiên bạn hãy copy toàn bộ nội dung ở trang index.php vào archive.php.

Sau đó ở phần <section id=”main-content”>, chúng ta nên có một đoạn sau ở trên đầu nó để hiển thị tên trang lưu trữ hiện tại mà họ đang xem.

Ở đoạn trên, mình sử dụng các hàm điều kiện của WordPress để kiểm tra query trên trang hiện tại nó đang thực thi. Nếu nó là tag thì sẽ in tên của tag ra với hàm single_tag_title(), tương tự với các điều kiện khác.

Kế tiếp, chúng ta nên viết thêm một đoạn code nữa để nó hiển thị mô tả của category và tag nếu có nhé.

Hàm term_description() nghĩa là sẽ trả về giá trị mô tả của một term trong bất kỳ taxonomy nào. Nếu nó không được thiết lập tham số thì sẽ lấy mô tả của term hiện tại theo ID, bởi vì dù có khác taxonomy nhưng các term đều có một ID khác nhau.

Code cho author.php

File này là một phần trong template archive.php, nếu file author.php không tồn tại thì nó sẽ load file archive.php ra, mục đích là hiển thị các bài viết của một tác giả dựa theo truy vấn đang truy cập.

Ở trang này, ngoài việc hiển thị giống như index.php thì mình sẽ muốn nó có thêm mô tả về thông tin tác giả. Do vậy, trước tiên bạn cần nên copy toàn bộ nội dung trong index.php vào:

Sau đó ở đoạn <section id=”main-content”>, bạn chèn đoạn này vào bên trên để hiển thị thông tin tác giả hiện tại mà truy vấn đang thực thi:

Trong đó, các hàm lấy thông tin của tác giả (user) là hàm get_the_author_meta(), bạn có thể xem thêm tại đây để biết thêm các tham số lấy dữ liệu của user.