1. Custom post type là gì?
Custom post type là loại nội dung giống cấu trúc của bài viết (post) và trang (page), tuy nhiên chúng được tách riêng thành một nhóm khác, được quản lý trong một menu admin khác. Chúng ta vẫn có thể tạo cho custom post type này một chuyên mục riêng gọi là taxanomy.
2. Vì sao phải sử dụng Custom post type?
Mặc định WordPress chỉ hỗ trợ cho chúng ta 2 loại post hay dùng đó là bài viết và trang. Tuy nhiên, khi bạn thiết kế web bằng wordpress khách hàng có thêm yêu cầu là Dịch Vụ, mặc dù bạn có thể tạo ra một chuyên mục trong bài viết và nhóm các chúng lại với nhau. Tuy nhiên việc quản lý sẽ trở nên rắc rối hơn, ví dụ như việc xóa nhầm hay hiển thị tất cả bài viết.
Khi tách ra thành một custom post type mới ngoài việc dễ quản lý trong quản trị, chúng ta cũng dễ dàng truy vấn, tìm kiếm, hay tạo ra các template, single, archive… mới
3. Cách thêm mới một Custom post type
Có nhiều cách để tạo ra các loại custom post type mới, tuy nhiên bạn nên tạo chúng trong theme để tiện quản lý hơn, trường hợp bạn chưa biết cách thì có thể cài các plugin hỗ trợ khác.
Trong ví dụ này tôi sẽ tạo ra một custom post type cơ bản nhất là Dịch Vụ, có cả trang chi tiết. Bạn có thể xem các cấu hình nâng cao qua những bài viết sau nhé.
3.1 Đăng ký custom post type bằng code trong theme
Để tạo được custom post type này bạn hãy nhúng đoạn code sau vào file functions.php, các giải thích đã có sẵn trong phần comment code.
add_action( 'admin_init', 'flush_rewrite_rules' ); add_action( 'init', 'wpshare247_register_posttype' ); function wpshare247_register_posttype(){ $posttype = 'dich-vu-pt'; // dùng để query $posttype_slug = 'dich-vu'; // http://tenmien.com/dich-vu/ten-dich-vu-1 $args = array( 'labels' => array( 'name' => __( 'Dịch vụ', 'twentyseventeen' ), 'singular_name' => __( 'Dịch vụ' ), 'add_new' => __( 'Thêm mới', 'twentyseventeen' ) ), 'public' => true, // true là cho phép query, tìm kiếm, hiển thị trong menu 'publicly_queryable' => true, // true có tạo đường dẫn, http://tenmien.com/dich-vu/ten-dich-vu-1 'show_ui' => true, // true cho phép hiển thị trong menu admin, menu top admin 'show_in_menu' => true, // cho phép post type này hiển thị trong admin menu nào đó 'capability_type' => 'post', // kế thừa phân quyền từ post hoặc page.... 'rewrite' => array( 'slug' => $posttype_slug ), 'menu_icon'=>'dashicons-images-alt2', 'supports' => array('title','editor', 'thumbnail') //'title', 'editor', 'comments', 'revisions', 'trackbacks', 'author', 'excerpt', 'page-attributes', 'thumbnail', 'custom-fields', and 'post-formats' ); register_post_type( $posttype, $args); }
3.2 Thêm bằng plugin
Hiện nay có rất nhiều plugin hỗ trợ việc này, bạn có thể vào kho plugin wordpress để tìm và cài nhé
Sau đây là một số plugin tốt nhất để tạo custom post type mình đề xuất cho bạn:
Hãy chọn cho mình một plugin tương thích với theme mình đang dùng nhé.
Bài viết này tôi chỉ hướng dẫn cho các bạn mới học wordpress làm quen với custom post type, tuy nhiên nó còn làm được nhiều hơn những gì bạn vừa xem qua nữa. Hẹn gặp lại các bạn trong bài custom post type wordpress nâng cao nhé.