About this plugin
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. 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?
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 }
`