Custom Post Type trong WordPress là gì
Khi đã tìm hiểu về WordPress bạn sẽ thấy trong WordPress có nhiều thể loại bài viết như:
- Post (Post Type: ‘post’)
- Page (Post Type: ‘page’)
- Attachment (Post Type: ‘attachment’) . Đây là mỗi file bạn upload lên ở mục Media đấy, mỗi file sẽ sinh ra một bài post.
- Revision (Post Type: ‘revision’) . Loại này đa số chúng ta ít để ý. Đây là chức năng cho phép xem lại lịch sử chỉnh sửa của bài post.
- Navigation menu (Post Type: ‘nav_menu_item’)
Đây là các thể loại mặc định có sẵn sau khi bạn cài đặt WordPress. Vậy giờ chúng ta muốn tạo một trang web hiển thị khoá học và tin tức thì làm thế nào? Sử dụng thể loại post cho cả hai rồi tạo một Metadata hoặc Custom field chọn mỗi khi đăng bài viết? Giải pháp đó cũng đáp ứng ổn. Nhưng sau này dự án khó mở rộng và admin sẽ rất khó trong việc quản lý, thao tác.
Để giải quyết vấn đề tốt hơn thì Custom Post Type sẽ là từ khóa giúp chúng ta giải quyết vấn đề này.
WordPress Custom Post Type là gì?
Custom Post Type trong WordPress là tạo ra một thể loại bài viết mới, ví dụ ở đây ta muốn tạo thêm một loại bài viết là Khoá học
Để tạo một Custom Post Type thì chúng ta sử dụng hàm register_post_type()
và đưa nó vào một hook action tên là init
.
Ví dụ: Tạo một thể loại Khoá học . Bạn đặt code sau vào file functions.php của thư mục theme đang được sử dụng:
add_action('init', 'create_post_type'); function create_post_type() { register_post_type('course', array( 'labels' => array( 'name' => __('Courses'), 'singular_name' => __('Course') ), 'public' => true, 'has_archive' => true, ) ); }
Bạn đăng nhập vào admin thì sẽ thấy một thể loại xuất hiện trong menu như hình sau:
Hàm register_post_type trong WordPress
Chức năng tạo Custom Post Type chủ yếu nằm ở function này thôi. Các bạn vào đây để đọc thêm về các thông số nhé, vừa luyện tiếng Anh luôn https://codex.wordpress.org/Function_Reference/register_post_type
Kết luận:
Custom Post Type trong hệ thống WordPress là một tính năng rất mạnh mẽ. Chúng ta sẽ sử dụng liên tục trong các dự án lớn, phức tạp nhằm tạo ra một hệ thống đa dạng các lại bài viết, đối tượng quản lý khác nhau cho phù hợp với nhu cầu dự án. Như vậy, mình đã giới thiệu sơ qua cho các bạn cách áp dụng vào dự án của mình rồi nhé. Hi vọng các bạn sẽ có thêm tuỳ chọn tuỳ biến và cảm thấy thích thú hơn với việc lập trình với CMS này.
Nếu cần giúp đỡ hay liên lạc gì các bạn cứ để lại ở dưới phần comment nha. Hoặc liên hệ trực tiếp mình 😀