This is a helper class for creating custom post types.. I'm sure it doesn't cover everything. PRs welcome.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
languages
.gitignore
CPT_Core.php
Gruntfile.js
README.md
composer.json
package.json

README.md

CPT_Core

A tool to make custom post type registration just a bit simpler. Automatically registers post type labels and messages, and provides helpful methods.

Also see Taxonomy_Core.

WebDevStudios. WordPress for big brands.

The simple way:

<?php

/**
 * Load CPT_Core.
 */
require_once 'CPT_Core/CPT_Core.php';

/**
 * Will register a 'Q & A' CPT
 */
register_via_cpt_core( array(
	__( 'Q & A', 'your-text-domain' ), // Singular
	__( 'Q & As', 'your-text-domain' ), // Plural
	'q-and-a-items' // Registered name/slug
) );

The object-oriented way!

<?php

/**
 * Load CPT_Core.
 */
require_once 'CPT_Core/CPT_Core.php';

/**
 * Creating a custom class allows you to override core methods, like CPT_Core::columns, and CPT_Core::columns_display
 */
class Actress_CPT extends CPT_Core {

	/**
	 * Register Custom Post Types. See documentation in CPT_Core, and in wp-includes/post.php
	 */
	public function __construct() {

		// Register this cpt
		// First parameter should be an array with Singular, Plural, and Registered name
		parent::__construct(
			array( 
				__( 'Actress', 'your-text-domain' ),
				__( 'Actresses', 'your-text-domain' ),
				'film-actress'
			),
			array( 
				'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail' ), 
			)
		);

	}

	/**
	 * Registers admin columns to display. Hooked in via CPT_Core.
	 * @since  0.1.0
	 * @param  array  $columns Array of registered column names/labels
	 * @return array           Modified array
	 */
	public function columns( $columns ) {
		$new_column = array(
			'headshot' => sprintf( __( '%s Headshot', 'your-text-domain' ), $this->post_type( 'singular' ) ),
		);
		return array_merge( $new_column, $columns );
	}

	/**
	 * Handles admin column display. Hooked in via CPT_Core.
	 * @since  0.1.0
	 * @param  array  $column Array of registered column names
	 */
	public function columns_display( $column, $post_id ) {
		switch ( $column ) {
			case 'headshot':
				the_post_thumbnail();
				break;
		}
	}

}
new Actress_CPT();