> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mainwp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Post Types

> Custom Post Types is an Extension for the MainWP that allows you to manage almost any custom post type on your Child Sites, including Publishing, Editing, and Deleting custom post type content.

## What You'll Learn

* Understanding matching CPTs between Dashboard and child sites
* Registering custom post types on your Dashboard
* Creating and managing CPT posts remotely
* Bulk editing custom post type content

***

<div id="addon-data" style={{display: 'none'}} data-title="Custom Post Types" data-purchase-url="https://mainwp.com/extension/custom-post-types/" data-pricing-tier="pro" data-bundle="MainWP Pro" data-addon-type="extension" data-version="5.0" data-developer="MainWP" data-changelog-url="https://mainwp.com/changelog/mainwp-custom-post-types-extension/" data-owned-by="Jestart LLC" data-privacy-url="https://mainwp.com/mainwp-plugin-privacy-policy/" />

<Info>
  **Extension Add-on** - This add-on provides standalone functionality within MainWP Dashboard. No third-party plugins required.
</Info>

<Warning>
  **Required Plugin** - The [Classic Editor](https://wordpress.org/plugins/classic-editor/) plugin must be installed on both your MainWP Dashboard and all child sites for this extension to work correctly.
</Warning>

Custom post types are nothing more than a basic posts but have different parameters defined inside your code. Probably, you have been able to see Products, Testimonials, Features, Projects, or similar items in your WordPress Sites and thought that it would be cool if you could manage these from your MainWP Dashboard. [MainWP Custom Post Types](https://mainwp.com/extension/custom-post-types/) extension allows you to manage custom post types on your child sites. To manage custom post types on your child sites, you need to have the matching Custom Post Type (CPT) on your MainWP Dashboard too. Once you register the same CPT on your MainWP Dashboard site, this extension will add the [Select Sites Metabox](/getting-started/mainwp-user-interface) to the Add New Item interface, and it will allow you to control where you want to publish this CPT content. Also, support for the CPT will be added to the Manage Posts section, so you can search and manage CPT posts.

## What is Matching CPT?

There are three required arguments for each CPT:

1. CPT Slug
2. CPT Plural Label
3. CPT Singular Label

If all three are in the match, you can say that you have the matching CPTs.

Let’s review the example of the **Movies** CPT.

On your child site(s), you have a **Movies** CPT (Slug: *movies*, Plural Label: *Movies*, Singular Label: *Movie*).
To be able to manage this CPT from your MainWP Dashboard, you need to create the same CPT your MainWP Dashboard site.

### WooCommerce Products

If you want to use this extension to publish WooCommerce Products to your child site(s), it is enough to install the WooCommerce plugin on your dashboard site. The extension will automatically create support for Products.

#### Important Notes

MainWP Custom Post Types extension DOES NOT register CPTs on your child sites. It only allows you to manage existing CPTs. To properly use it, you need to have the same CPT on your Dashboard and Child Site(s)! It doesn’t matter if a CPT on your child sites has been created by a plugin, registered with a snippet in the functions.php, or added by your WordPress Theme; this extension will be able to manage it as long as you can create the **Matching CPT** on your dashboard site.

## Register Custom Post Types on Your MainWP Dashboard Site

To do this, you have two options:

<Steps>
  <Step title="Create a code snippet and add it to the functions.php" />

  <Step title="Use one of the 3rd party plugins to register CPTs on your dashboard siteCustom Post Type UI">
    Use one of the 3rd party plugins to register CPTs on your dashboard site

    * [Custom Post Type UI](https://wordpress.org/plugins/custom-post-type-ui/)
    * [Pods](https://wordpress.org/plugins/pods/)
  </Step>
</Steps>

[Read more about registering CPTs here!](https://www.elegantthemes.com/blog/tips-tricks/creating-custom-post-types-in-wordpress) After registering a CPT on your MainWP Dashboard, the MainWP Icon will be appended next to the link in the WP Admin menu, and it means that the CPT is ready to be managed through the MainWP Dashboard.

## Create a New CPT Post

<Steps>
  <Step title="Login in to your MainWP Dashboard" />

  <Step title="Go to the MainWP > Add-ons > Custom Post Types page" />

  <Step title="In the Custom Post Types box, you will be able to see all registered CPTs on your MainWP Dashboard">
    In the Custom Post Types box, you will be able to see all registered CPTs on your MainWP Dashboard
  </Step>

  <Step title="Locate the one you want to publish to your Child Site(s)" />

  <Step title="Click the Add New button" />

  <Step title="You will be prompted to the Add New screen" />

  <Step title="Enter the CPT post Title, Body, and metadata" />

  <Step title="Select your Child Sites where you want to publish">
    [Select your Child Sites](/getting-started/mainwp-user-interface) where you want to publish
  </Step>

  <Step title="Click the Publish button" />
</Steps>

## Manage Custom Post Types

The Custom Post Types extension allows you to manage WordPress posts on your Websites. It will allow you to create new CPT posts on your managed sites remotely, edit, change the status for existing CPT posts, or completely delete them. On the **MainWP > Posts > Manage page**, you can easily find all existing CPT posts and manage them without of hustle of logging into each child site separately.

<Steps>
  <Step title="Login in to your MainWP Dashboard" />

  <Step title="Go to the MainWP > Posts > Manage Posts page" />

  <Step title="In the Search Options, set your search preference">
    <img src="https://mintcdn.com/mainwp/2l_gbp8O-WEhKcrd/images/add-ons/custom-post-types-overview.jpg?fit=max&auto=format&n=2l_gbp8O-WEhKcrd&q=85&s=7e461bc6026c801a4e4e593502e8c7b8" alt="In the Search Options, set your search preference" width="299" height="523" data-path="images/add-ons/custom-post-types-overview.jpg" />

    **Status** filters will allow you to narrow down the search to selected CPT post statuses only.

    * **The keyword** field will allow you to find CPT posts where an entered word has been used.
    * **Date Range** will narrow down the search to posts that have been published in the selected date range.
    * **Post Type** menu will allow you to target a specific post type
  </Step>

  <Step title="Select wanted Child Sites">
    [Select wanted Child Sites](/getting-started/mainwp-user-interface)
  </Step>

  <Step title="Click the Show Posts button" />
</Steps>

Once the search is complete, a list of found posts will appear at the bottom of the page.

## Edit a CPT Post

<Steps>
  <Step title="Login in to your MainWP Dashboard" />

  <Step title="Go to the MainWP > Posts > Manage Posts page" />

  <Step title="In the Search Options, set your search preferences">
    <img src="https://mintcdn.com/mainwp/2l_gbp8O-WEhKcrd/images/add-ons/custom-post-types-overview.jpg?fit=max&auto=format&n=2l_gbp8O-WEhKcrd&q=85&s=7e461bc6026c801a4e4e593502e8c7b8" alt="In the Search Options, set your search preferences" width="299" height="523" data-path="images/add-ons/custom-post-types-overview.jpg" />
  </Step>

  <Step title="Select wanted Child Sites">
    [Select wanted Child Sites](/getting-started/mainwp-user-interface)
  </Step>

  <Step title="Click the Show Posts button" />

  <Step title="Once the list of found posts appears, locate the CPT Post you want to edit" />

  <Step title="Click the Edit action in the actions menu." />
</Steps>

## View a CPT Post

<Steps>
  <Step title="Login in to your MainWP Dashboard" />

  <Step title="Go to the MainWP > Posts > Manage Posts page" />

  <Step title="In the Search Options, set your search preferences">
    <img src="https://mintcdn.com/mainwp/2l_gbp8O-WEhKcrd/images/add-ons/custom-post-types-overview.jpg?fit=max&auto=format&n=2l_gbp8O-WEhKcrd&q=85&s=7e461bc6026c801a4e4e593502e8c7b8" alt="In the Search Options, set your search preferences" width="299" height="523" data-path="images/add-ons/custom-post-types-overview.jpg" />
  </Step>

  <Step title="Select wanted Child Sites">
    [Select wanted Child Sites](/getting-started/mainwp-user-interface)
  </Step>

  <Step title="Click the Show Posts button" />

  <Step title="Once the list of found posts appears, locate the CPT Post you want to edit" />

  <Step title="Click the View action in the actions menu." />
</Steps>

## Delete a CPT Post

### Move CPT Post(s) to Trash

<Steps>
  <Step title="Login in to your MainWP Dashboard" />

  <Step title="Go to the MainWP > Posts > Manage Posts page" />

  <Step title="In the Search Options, set your search preferences">
    <img src="https://mintcdn.com/mainwp/2l_gbp8O-WEhKcrd/images/add-ons/custom-post-types-overview.jpg?fit=max&auto=format&n=2l_gbp8O-WEhKcrd&q=85&s=7e461bc6026c801a4e4e593502e8c7b8" alt="In the Search Options, set your search preferences" width="299" height="523" data-path="images/add-ons/custom-post-types-overview.jpg" />
  </Step>

  <Step title="Select wanted Child Sites">
    [Select wanted Child Sites](/getting-started/mainwp-user-interface)
  </Step>

  <Step title="Click the Show Posts button" />

  <Step title="Once the list of found posts appears, locate the CPT Post you want to edit" />

  <Step title="Click the Trash action in the actions menu." />
</Steps>

If you need to delete multiple posts at once, before clicking the Trash action, select all posts you want to move to Trash and use the Bulk Actions menu to delete them.

### Delete Permanently

Since WordPress allows you to permanently delete only posts that are currently in Trash, before you can permanently delete them, you need to send them to Trash. Once they are in Trash, the **Delete Permanently** action will be available.

## Bulk Edit CPT posts

<iframe className="w-full aspect-video rounded-xl" src="https://www.youtube.com/embed/pZ2KUuD47Cc" title="Custom Post Types - Video Tutorial" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />

<Steps>
  <Step title="Login in to your WordPress Dashboard" />

  <Step title="Go to the desired Custom Post type list of posts" />

  <Step title="Locate the post and click Edit" />

  <Step title="Make the appropriate changes and select wanted Child Sites">
    Make the appropriate changes and [select wanted Child Sites](/getting-started/mainwp-user-interface) <img src="https://mintcdn.com/mainwp/9Fi7dKBCIriTb92d/images/add-ons/0f084304ce2a.png?fit=max&auto=format&n=9Fi7dKBCIriTb92d&q=85&s=a192126024b95d1ca93a6d611c01586f" alt="Select Sites metabox for bulk editing custom post types" width="1439" height="1053" data-path="images/add-ons/0f084304ce2a.png" />
  </Step>

  <Step title="Click the Update button" />
</Steps>

Please note that you will not be able to Bulk Edit if the CPT post was not published through MainWP Dashboard.

***

## Related Resources

* [Posts/Pages Add-ons](/add-ons/posts-pages) - Browse all content tools
* [Manage Posts](/sites/content/manage-posts) - Post management guide
* [WooCommerce Status Extension](/add-ons/administrative/woocommerce-status-extension) - WooCommerce integration
