Custom post type trong wordpress
Last updated
Last updated
Khi cài wordpress xong chúng ta sẽ thấy mặc định có phần post (Bài viết), phần này sẽ quản lý tất cả bài viết của website. Đối với các website blog hoặc tin tức thì nhưng vậy là đủ…
Nhưng trường hợp mình muốn làm website bán hàng, mình cần thêm 1 khu vực để đăng sản phẩm. Vậy website chỉ có 1 phần bài viết như trên là không đủ chúng ta cần tạo ra một khu vực khác để đăng sản phẩm.
Việc đi tạo khu vực để đăng sản phẩm có chức năng tương tự phần post người ta gọi là custom post type. Và khu vực mới đó người ta gọi là post type sản phẩm.
Và tất nhiên wordpress đã cung cấp sẵn các hàm, các công cụ để chúng ta tạo 1 hoặc nhiều custom post type.
Tính năng này đã giúp wordpress không dừng lại ở một CMS làm blog mà chúng ta còn có thể làm nhiều loại website khác như: Website bán hàng, bất động sản, công ty, dịch vụ, quản lý…
Để tạo custom post type trong wordpress chúng ta sử dụng đoạn code sau, chèn đoạn code này vào file functions.php của theme đang sử dụng nhé.
Hàm register_post_type nhận 2 giá trị đó là slug và tham số $args
Slug trong hàm register_post_type sẽ sử dụng để get dữ liệu của post type ra ngoài frontend
Trong tham số $args có thành phần ‘supports’ là đây là những thanh phần sẽ hỗ trợ trong post type sanpham. Nếu không cần sử dụng tất cả bạn có thể xóa một số thành phần cho post type của chúng ta trở nên gọn gàng hơn.
menu_icon là icon hiển thì khi post type mới được đăng ký, các bạn có thể chọn 1 trong các icon ở đây: Danh sách icon menu trong admin wordpress
Sau khi tạo custom post type thành công các bạn vào admin sẽ thấy xuất hiện menu sản phẩm như hình dưới.
Phía trên là cách tạo custom post type bằng code. WordPress có rất nhiều plugin giải quyết vấn đề này ví dụ như
Chúng ta sẽ sử dụng vòng lặp get post trong wordpress để lấy bài viết của custom post type. Các bạn sử dụng đoạn code phía dưới nhé.
Như các bạn đã thấy thì so với get bài viết thông thường get bài viết của post type chỉ có một điểm thay đổi đó là: ‘post_type’ => ‘sanpham’ sanpham ở đây là slug của post type mà chúng ta khai báo trong phần tạo custom post type, còn lại mọi thứ đều tương tự post.
Để lấy danh sách tất cả bài viết trong custom post type vừa tạo chúng ta chạy được dẫn: domain.com/sanpham => sanpham là slug khi đăng ký post type, khi chạy đường dẫn đó chúng sẽ gọi file: archive-sanpham.php
Đối với trang chi tiết của custom post type nó sẽ nhận file: single-sanpham.php