Custom post type là gì ?

Khi cài đặt mặc định, wordpress đã hỗ trợ 2 post type chính là : page cùng post.

Bạn đang xem: Làm thế nào để tạo custom post type wordpress

Chúng dùng để làm quản lý bài viết (post) và các trang tĩnh (page).Như vậy nếu bạn muốn quản lý một đối tượng khác như dịch vụ (product) thì bạn phải tạo 1 post type service hoặc dich_vu nhằm quản lí chúng.Post type product cũng đều có đầy đủ các thuộc tính như postpage ( ảnh đại diện, content, title, custom field, ... )

*

Nhưng vào trang quản lí trị wordpress cần yếu tạo post type service được. Vậy làm thế nào để sản xuất 1 custom post type như ý và có những cách nào để chế tác chúng nhanh nhất có thể có thể.Hãy thuộc mình tò mò nhé.

Cách chế tạo custom post type

function sun_dich_vu_init() $labels = array( "name" => _x( "Dịch vụ", "Post type general name", "textdomain" ), "singular_name" => _x( "Dịch vụ", "Post type singular name", "textdomain" ), "menu_name" => _x( "Dịch vụ", "Admin menu text", "textdomain" ), "name_admin_bar" => _x( "Dịch vụ", "Add New on Toolbar", "textdomain" ), "add_new" => ( "Add New", "textdomain" ), "add_new_item" => ( "Add New Dịch vụ", "textdomain" ), "new_item" => ( "New Dịch vụ", "textdomain" ), "edit_item" => ( "Edit Dịch vụ", "textdomain" ), "view_item" => ( "View Dịch vụ", "textdomain" ), "all_items" => ( "All Dịch vụ", "textdomain" ), "search_items" => ( "Search Dịch vụ", "textdomain" ), "parent_item_colon" => ( "Parent Dịch vụ:", "textdomain" ), "not_found" => ( "No dịch vụ found.", "textdomain" ), "not_found_in_trash" => ( "No thương mại dịch vụ found in Trash.", "textdomain" ), "featured_image" => _x( "Book Cover Image", "Overrides the “Featured Image” phrase for this post type. Added in 4.3", "textdomain" ), "set_featured_image" => _x( "Set cover image", "Overrides the “Set featured image” phrase for this post type. Added in 4.3", "textdomain" ), "remove_featured_image" => _x( "Remove cover image", "Overrides the “Remove featured image” phrase for this post type. Added in 4.3", "textdomain" ), "use_featured_image" => _x( "Use as cover image", "Overrides the “Use as featured image” phrase for this post type. Added in 4.3", "textdomain" ), "archives" => _x( "Dịch vụ archives", "The post type archive label used in nav menus. Mặc định “Post Archives”. Added in 4.4", "textdomain" ), "insert_into_item" => _x( "Insert into Dịch vụ", "Overrides the “Insert into post”/”Insert into page” phrase (used when inserting truyền thông into a post). Added in 4.4", "textdomain" ), "uploaded_to_this_item" => _x( "Uploaded khổng lồ this Dịch vụ", "Overrides the “Uploaded to this post”/”Uploaded to this page” phrase (used when viewing truyền thông attached khổng lồ a post).

Xem thêm: 5 Cách Tạo Email Theo Tên Miền Miễn Phí 2022, 3 Cách Tạo Email Tên Miền Miễn Phí

Added in 4.4", "textdomain" ), "filter_items_list" => _x( "Filter dịch vụ list", "Screen reader text for the filter liên kết heading on the post type listing screen. Default “Filter posts list”/”Filter pages list”. Added in 4.4", "textdomain" ), "items_list_navigation" => _x( "Dịch vụ các mục navigation", "Screen reader text for the pagination heading on the post type listing screen. Default “Posts các mục navigation”/”Pages list navigation”. Added in 4.4", "textdomain" ), "items_list" => _x( "Dịch vụ list", "Screen reader text for the items list heading on the post type listing screen. Default “Posts list”/”Pages list”. Added in 4.4", "textdomain" ), ); $args = array( "labels" => $labels, "public" => true, "publicly_queryable" => true, "show_ui" => true, "show_in_menu" => true, "query_var" => true, "rewrite" => array( "slug" => "service" ), "capability_type" => "post", "has_archive" => true, "hierarchical" => false, "menu_position" => null, "supports" => array( "title", "editor", "author", "thumbnail", "excerpt", "comments" ), ); register_post_type( "dich_vu", $args ); add_action( "init", "sun_dich_vu_init" );Nhìn dường như khá lâu năm đúng không? mà lại đây là toàn cục thuộc tính của 1 post type ta cần thiết lập nếu cần thiết đó.Cơ mà lại nhớ ráng méo nào hết được.Bởi nuốm mình thấy nên tuân theo 1 vào 2 bí quyết sau:nhớ phần đa thứ buộc phải thiết:Đoạn code trên ta không yêu cầu nhớ toàn thể chúng, ta chỉ cần nhớ một phần mà thôifunction sun_dich_vu_init() $labels = array( "name" => _x( "Dịch vụ", "Post type general name", "textdomain" ), "singular_name" => _x( "Dịch vụ", "Post type singular name", "textdomain" ), "menu_name" => _x( "Dịch vụ", "Admin thực đơn text", "textdomain" ), ); $args = array( "labels" => $labels, "public" => true, "publicly_queryable" => true, "show_ui" => true, "show_in_menu" => true, "query_var" => true, "rewrite" => array( "slug" => "service" ), "capability_type" => "post", "has_archive" => true, "hierarchical" => false, "menu_position" => null, "supports" => array( "title", "editor", "author", "thumbnail", "excerpt", "comments" ), ); register_post_type( "dich_vu", $args ); add_action( "init", "sun_dich_vu_init" );Đó, ngắn thêm một đoạn nhiều rồi. Do những data của $label tương đối dài và lại không quan trọng cho lắm buộc phải ta rất có thể bỏ qua.Chú ý đề nghị nhớ phần $args chính là các thiết lập cho post type đó.Cơ mà lại mình vẫn thấy nó lâu năm và khó khăn nhớ (lười). Thực tế trong mấy project cơ mà chạy deadline sml thì cấp thiết ngồi gõ như này được.Sau khi google thì mình thấy đâu bao gồm mỗi bản thân lười đâu. Các cha anh sẽ tạo luôn luôn 1 tool để generate ra đoạn code bên trên cho họ roài.

Đó là sau thời điểm mình setup ở form phía trên

*

Xong, giờ bọn họ đã có code. Bản thân sẽ sử dụng cách nhanh nhất có thể là ném trực tiếp vào file functions.php của theme đã active nhé.Sau đó chúng ta sẽ thấy sống menu xuất hiện một phần quản lí dịch vụ thương mại như sau

*

Dùng plugin để chế tạo ra ( cách này mình hay dùng nè)

Demo:

*

Sau khi setup và kích hoạt plugin thì đây là phần cài đặt cho post type dịch vụ thương mại như trên nếu không cần sử dụng code.Điền dứt ấn submit và bạn đã sở hữu phần cai quản cho post type dich_vu trong 1 nốt nhạc
*
Ngoài ra plugin này rất có ích khi rất có thể tạo custom taxonomy đến post type luôn. Cực kỳ tiện lợi !

Kết luận

Qua nội dung bài viết này mình đã chia sẻ các cách để tạo 1 custom post type quản lí lí riêng cho 1 đối tượng không tính post với page.Ở bài bác sau mình sẽ chia sẻ về bí quyết tạo những custom template riêng nhằm hiển thị mang đến post type dich_vuCám ơn chúng ta đã đọc đến tận đây, nếu thấy tốt hãy cho doanh nghiệp 1 up vote nhé !