Title: GigaOM Custom Post Type Factory
Author: Casey Bisson
Published: <strong>Avgust 12, 2012</strong>
Last modified: Avgust 13, 2012

---

Search plugins

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://s.w.org/plugins/geopattern-icon/go-cptfactory.svg)

# GigaOM Custom Post Type Factory

 By [Casey Bisson](https://profiles.wordpress.org/misterbisson/)

[Download](https://downloads.wordpress.org/plugin/go-cptfactory.zip)

 * [Details](https://uz.wordpress.org/plugins/go-cptfactory/#description)
 * [Reviews](https://uz.wordpress.org/plugins/go-cptfactory/#reviews)
 *  [Installation](https://uz.wordpress.org/plugins/go-cptfactory/#installation)
 * [Development](https://uz.wordpress.org/plugins/go-cptfactory/#developers)

 [Support](https://wordpress.org/support/plugin/go-cptfactory/)

## Description

This is a convenience class and collection of methods to make creating new custom
post types with their own metaboxes easy.

The general idea is to define a function that’s hooked to the `register_post_types`
action. The function defines a class for your post type that extends the `GO_Cpt`
class. This follows a design pattern established by the modern widgets API (as introduced
in WP 2.8) https://codex.wordpress.org/Widgets_API#Developing_Widgets .

The result is a new custom post type and much easier creation and updating of custom
meta associated with that post type. You’ll also have a convenient object you can
use to access the metadata associated with each post.

    ```
    function my_customposttype() {     class My_CustomPostType extends GO_Cpt     {         function __construct()         {             // execute the parent constructor with the name 
                // and definition for the custom post type             parent::__construct( $post_type_name , $post_type_definition );         }          function metabox( $post , $meta )         {             // print out the form here             // 
                // this method is optional, only use it if you want to 
                // add a metabox to your custom post type         }          function update( $new_meta , $old_meta )         {             // sanitize and validate the metadata             // then return $meta so it can be saved             //             // this method is required if a 
                // metabox() method is included          }     }      global $my_customposttype;     $my_customposttype = new My_CustomPostType; }  // hook that function to the register_post_types action add_action( 'register_post_types' , 'my_customposttype' ); 
    ```

Backstory: defining the post type class inside the function avoids issues with loading
order and fatal errors resulting from attempting to extend a class that might not
exist yet. Isn’t PHP awesome?

See the included hello world example: https://plugins.trac.wordpress.org/browser/
go-cptfactory/trunk/example-helloworld-cpt.php

To access the meta associated with a post, you can call `$my_customposttype->get_meta(
$post_id );`

You can easily add a method and hook to filter `the_content` or `the_excerpt` to
insert custom values that may have been entered in the post meta. Simply add `add_filter('
the_content' , array( $this , 'the_content' ));` in the `__construct()` and then
define another method in the `My_CustomPostType` class such as:`

    ```
        function the_content( $content )     { 
            $meta_print = print_r( $this->get_meta( get_the_ID() ) , TRUE ); 
            return $meta_print . $content 
        } 
    ```

`

## Installation

 1. Place the plugin folder in your `wp-content/plugins/` directory and activate it.
 2. To actually use it, you’ll have to define a custom post type class. See more: https://
    wordpress.org/extend/plugins/go-cptfactory/

## FAQ

#### Q: Code is complex, is there an easier way to do this?

A: You should consinder Pods: http://podsframework.org

#### Q: If Pods is out there, why did you bother with this?

A: Pods is cool, but this keeps the problem in code, without any dependency on configuration
information stored in the database. This also fits the architecture I like where
the code related to a post type is associated with the post type definition. In 
my use, custom post type classes actually have many more methods to collect, validate,
and display their data.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“GigaOM Custom Post Type Factory” is open source software. The following people 
have contributed to this plugin.

Contributors

 *   [ Casey Bisson ](https://profiles.wordpress.org/misterbisson/)

[Translate “GigaOM Custom Post Type Factory” into your language.](https://translate.wordpress.org/projects/wp-plugins/go-cptfactory)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/go-cptfactory/), check
out the [SVN repository](https://plugins.svn.wordpress.org/go-cptfactory/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/go-cptfactory/) 
by [RSS](https://plugins.trac.wordpress.org/log/go-cptfactory/?limit=100&mode=stop_on_copy&format=rss).

## Meta

 *  Version **a1**
 *  Last updated **14 yil ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 3.3 or higher **
 *  Tested up to **3.4.2**
 *  Language
 * [English (US)](https://wordpress.org/plugins/go-cptfactory/)
 * Tags
 * [custom post types](https://uz.wordpress.org/plugins/tags/custom-post-types/)
   [custom posts](https://uz.wordpress.org/plugins/tags/custom-posts/)[developers](https://uz.wordpress.org/plugins/tags/developers/)
   [post types](https://uz.wordpress.org/plugins/tags/post-types/)[posts](https://uz.wordpress.org/plugins/tags/posts/)
 *  [Advanced View](https://uz.wordpress.org/plugins/go-cptfactory/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/go-cptfactory/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/go-cptfactory/reviews/)

## Contributors

 *   [ Casey Bisson ](https://profiles.wordpress.org/misterbisson/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/go-cptfactory/)