webdevstudios/cpt-core

WordPress Custom Post Type OO wrapper

Installs: 7 603

Dependents: 1

Suggesters: 0

Security: 0

Stars: 78

Watchers: 64

Forks: 13

Open Issues: 9

Type:wordpress-plugin

v1.0.3 2017-03-24 16:06 UTC

README

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();