{"id":13466,"date":"2026-06-17T10:32:05","date_gmt":"2026-06-17T10:32:05","guid":{"rendered":"https:\/\/www.webystrata.co.uk\/blog\/create-custom-post-type-in-wordpress\/"},"modified":"2026-06-17T10:38:25","modified_gmt":"2026-06-17T10:38:25","slug":"create-custom-post-type-in-wordpress","status":"publish","type":"post","link":"https:\/\/www.webystrata.co.uk\/blog\/create-custom-post-type-in-wordpress\/","title":{"rendered":"How to Create Custom Post Type in WordPress"},"content":{"rendered":"<h1>How to Create\u00a0 Custom Post Type in WordPress<\/h1>\n<p>WordPress is one of the most flexible content management systems available today. By default, WordPress provides two main content types: Posts and Pages. While these are sufficient for many websites, some websites require additional content structures to organize information more effectively.<\/p>\n<p>For example, you may want to create separate sections for portfolios, testimonials, services, team members, events, FAQs, or products. Instead of mixing all this content with your regular blog posts, WordPress allows you to create <strong>Custom Post Types (CPTs)<\/strong>.<\/p>\n<p>In this guide, you&#8217;ll learn how to create a Custom Post Type in WordPress using a plugin without writing any code.<\/p>\n<h2>What is\u00a0 Custom Post Type in WordPress?<\/h2>\n<p>A Custom Post Type is a content type that differs from the default Posts and Pages available in WordPress.<\/p>\n<p>Think of a Custom Post Type as a separate section within your website that stores a specific type of content. For example:<\/p>\n<ul>\n<li>Portfolio Projects<\/li>\n<li>Services<\/li>\n<li>Testimonials<\/li>\n<li>Team Members<\/li>\n<li>Events<\/li>\n<li>Properties<\/li>\n<li>Courses<\/li>\n<li>Products<\/li>\n<\/ul>\n<p>Each Custom Post Type can have its own menu in the WordPress dashboard, making content management easier and more organized.<\/p>\n<h2>When Should You Use a Custom Post Type?<\/h2>\n<p>You should consider creating a Custom Post Type when the content:<\/p>\n<ul>\n<li>Has a different purpose than blog posts.<\/li>\n<li>Requires its own navigation section.<\/li>\n<li>Needs separate archives and listings.<\/li>\n<li>Will be updated regularly.<\/li>\n<li>Represents a unique content category.<\/li>\n<\/ul>\n<p>Examples include:<\/p>\n<table>\n<thead>\n<tr>\n<th>Website Type<\/th>\n<th>Custom Post Type<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Agency Website<\/td>\n<td>Portfolio<\/td>\n<\/tr>\n<tr>\n<td>Service Business<\/td>\n<td>Services<\/td>\n<\/tr>\n<tr>\n<td>School Website<\/td>\n<td>Courses<\/td>\n<\/tr>\n<tr>\n<td>Real Estate Website<\/td>\n<td>Properties<\/td>\n<\/tr>\n<tr>\n<td>Event Website<\/td>\n<td>Events<\/td>\n<\/tr>\n<tr>\n<td>Corporate Website<\/td>\n<td>Team Members<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>\u00a0Steps to Create\u00a0 Custom Post Type in WordPress<\/h2>\n<p>The easiest way to create a Custom Post Type is by using the <strong>Custom Post Type UI<\/strong> plugin.<\/p>\n<p>This method is recommended for beginners because it requires no coding knowledge.<\/p>\n<h3>Step 1: Log in to Your WordPress Dashboard<\/h3>\n<p>Begin by accessing your WordPress administration area.<\/p>\n<p>Open your web browser and visit:<\/p>\n<p><code><a href=\"https:\/\/yourdomain.com\/wp-admin\" target=\"_blank\" rel=\"noopener\">https:\/\/yourdomain.com\/wp-admin<\/a><\/code><\/p>\n<p>Enter your administrator username and password, then click <strong>Log In<\/strong>.<\/p>\n<p>Once logged in, you will be redirected to the WordPress Dashboard.<\/p>\n<p>&nbsp;<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-13341\" src=\"https:\/\/www.webystrata.co.uk\/blog\/wp-content\/uploads\/2026\/06\/wp-dashboard-16.webp\" alt=\"how-to-create-custom-post-type-in-wordpress\u00a0\" width=\"1918\" height=\"916\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>Step 2: Install the Custom Post Type UI Plugin<\/h3>\n<ol>\n<li>Navigate to <strong>Plugins \u2192 Add New Plugin<\/strong>.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-13342\" src=\"https:\/\/www.webystrata.co.uk\/blog\/wp-content\/uploads\/2026\/06\/add-plug-2.webp\" alt=\"how-to-create-custom-post-type-in-wordpress\" width=\"1917\" height=\"911\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>2. Search for <strong>Custom Post Type UI<\/strong>.<\/p>\n<p>3. Click <strong>Install Now<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-13343\" src=\"https:\/\/www.webystrata.co.uk\/blog\/wp-content\/uploads\/2026\/06\/install-now-2.webp\" alt=\"how-to-create-custom-post-type-in-wordpress\" width=\"1915\" height=\"902\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>4. After installation, click <strong>Activate<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13344\" src=\"https:\/\/www.webystrata.co.uk\/blog\/wp-content\/uploads\/2026\/06\/activate-2.webp\" alt=\"how-to-create-custom-post-type-in-wordpress\" width=\"1918\" height=\"896\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Once activated, a new menu item called <strong>CPT UI<\/strong> will appear in your WordPress dashboard.<\/p>\n<h3>Step 3: Create a New Custom Post Type<\/h3>\n<ol>\n<li>Go to <strong>CPT UI \u2192 Add\/Edit Post Types<\/strong>.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13345\" src=\"https:\/\/www.webystrata.co.uk\/blog\/wp-content\/uploads\/2026\/06\/cpt-ui-add.webp\" alt=\"how-to-create-custom-post-type-in-wordpress\" width=\"1917\" height=\"912\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>2. You will see a form where you can define your Custom Post Type.<\/p>\n<p>Fill in the required fields:<\/p>\n<p><strong>Post Type Slug<\/strong><\/p>\n<p>This is the system name used by WordPress.<\/p>\n<p>Example:<\/p>\n<pre><code class=\"language-text\">portfolio\r\n<\/code><\/pre>\n<h4>Plural Label<\/h4>\n<p>This is how the menu appears in WordPress.<\/p>\n<p>Example:<\/p>\n<pre><code class=\"language-text\">Portfolios\r\n<\/code><\/pre>\n<h4>Singular Label<\/h4>\n<p>This is the name used when adding a single entry.<\/p>\n<p>Example:<\/p>\n<pre><code class=\"language-text\">Portfolio<\/code>\r\n\r\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13346\" src=\"https:\/\/www.webystrata.co.uk\/blog\/wp-content\/uploads\/2026\/06\/details-3.webp\" alt=\"how-to-create-custom-post-type-in-wordpress\" width=\"1918\" height=\"900\" \/>\r\n\r\n<\/pre>\n<h3>Step 4: Configure Additional Settings<\/h3>\n<p>Scroll down to review additional options.<\/p>\n<p>Important settings include:<\/p>\n<ul>\n<li>Public<\/li>\n<li>Has Archive<\/li>\n<li>Show in REST API<\/li>\n<li>Menu Position<\/li>\n<li>Menu Icon<\/li>\n<\/ul>\n<h3>Step 5: Create the Custom Post Type<\/h3>\n<p>After entering all required details:<\/p>\n<ol>\n<li>Click <strong>Add Post Type<\/strong>.<\/li>\n<li>Wait for WordPress to save the configuration.<\/li>\n<\/ol>\n<p>Your new Custom Post Type is now created.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13347\" src=\"https:\/\/www.webystrata.co.uk\/blog\/wp-content\/uploads\/2026\/06\/add-4-1.webp\" alt=\"how-to-create-custom-post-type-in-wordpress\" width=\"1918\" height=\"918\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>Step 6: Verify the Custom Post Type<\/h3>\n<p>Look at the left-side dashboard menu.<\/p>\n<p>You should now see your newly created Custom Post Type listed there.<\/p>\n<p>For example:<\/p>\n<pre><code class=\"language-text\">Portfolios\r\n<\/code><\/pre>\n<p>Click it to manage entries.<\/p>\n<h2>Benefits of Custom Post Types<\/h2>\n<ul>\n<li>Better Content Organization<\/li>\n<li>Improved Website Management<\/li>\n<li>Enhanced User Experience<\/li>\n<li>Professional Website Structure<\/li>\n<li>Better Content Scalability<\/li>\n<\/ul>\n<h2>Best Practices for Custom Post Types<\/h2>\n<p>To get the best results:<\/p>\n<ul>\n<li>Use descriptive names.<\/li>\n<li>Keep slugs short and SEO-friendly.<\/li>\n<li>Enable archives when necessary.<\/li>\n<li>Organize content consistently.<\/li>\n<li>Use featured images for better presentation.<\/li>\n<li>Avoid creating unnecessary Custom Post Types.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Creating a Custom Post Type in WordPress is an excellent way to organize specialized content and improve website management. Whether you&#8217;re building a portfolio, service directory, testimonial section, or event listing, Custom Post Types help keep your content structured and easy to manage.<\/p>\n<p>Using the Custom Post Type UI plugin is the simplest and safest method for beginners because it eliminates the need for coding while providing complete control over your content structure. With just a few clicks, you can create custom content sections that enhance both the administrative experience and the visitor experience on your WordPress website.<\/p>\n<p class=\"ws-crosspost-source\">Originally published on <a href=\"https:\/\/www.webystrata.com\/blog\/create-custom-post-type-in-wordpress\/\" target=\"_blank\" rel=\"noopener\">WebyStrata.com Blog<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to Create\u00a0 Custom Post Type in WordPress WordPress is one of the most flexible content management systems available today. By default, WordPress provides two main content types: Posts and Pages. While these are sufficient for many websites, some websites require additional content structures to organize information more effectively. For example, you may want to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":13477,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,10],"tags":[],"class_list":["post-13466","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-latest-updates","category-wordpress"],"_links":{"self":[{"href":"https:\/\/www.webystrata.co.uk\/blog\/wp-json\/wp\/v2\/posts\/13466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webystrata.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webystrata.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webystrata.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webystrata.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=13466"}],"version-history":[{"count":2,"href":"https:\/\/www.webystrata.co.uk\/blog\/wp-json\/wp\/v2\/posts\/13466\/revisions"}],"predecessor-version":[{"id":13476,"href":"https:\/\/www.webystrata.co.uk\/blog\/wp-json\/wp\/v2\/posts\/13466\/revisions\/13476"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webystrata.co.uk\/blog\/wp-json\/wp\/v2\/media\/13477"}],"wp:attachment":[{"href":"https:\/\/www.webystrata.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=13466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webystrata.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=13466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webystrata.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=13466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}