WordPress comes with five default post types: post, page, attachment, revision, and menu.
While developing your plugin, you may need to create your own specific content type: for example, products for an e-commerce website, assignments for an e-learning website, or movies for a review website.
Using Custom Post Types, you can register your own post type. Once a custom post type is registered, it gets a new top-level administrative screen that can be used to manage and create posts of that type.
To register a new post type, you use the register_post_type() function.
A custom post type gets its own slug within the site URL structure.
A post of type wporg_product will use the following URL structure by default: http://example.com/wporg_product/%product_name%.
wporg_product is the slug of your custom post type and %product_name% is the slug of your particular product.
The final permalink would be: http://example.com/wporg_product/wporg-is-awesome.
You can see the permalink on the edit screen for your custom post type, just like with default post types.
To set a custom slug for the slug of your custom post type all you need to do is add a key => value pair to the rewrite key in the register_post_type() arguments array.