Created
July 31, 2019 04:08
-
-
Save barbareshet/6a5d0cc73e8fee5fad9e8e2f98ce1949 to your computer and use it in GitHub Desktop.
WordPress New Custom Post Type & Taxonomy Class
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Custom_Post_Type{ | |
| function __construct() { | |
| add_action( 'init', array( &$this, 'init' ) ); | |
| } | |
| function init() { | |
| $this->custom_post_type(); | |
| $this->custom_taxonomy(); | |
| } | |
| // Register Custom Post Type | |
| function custom_post_type() { | |
| $labels = array( | |
| 'name' => _x( 'Post Types', 'Post Type General Name', 'text_domain' ), | |
| 'singular_name' => _x( 'Post Type', 'Post Type Singular Name', 'text_domain' ), | |
| 'menu_name' => __( 'Post Types', 'text_domain' ), | |
| 'name_admin_bar' => __( 'Post Type', 'text_domain' ), | |
| 'archives' => __( 'Item Archives', 'text_domain' ), | |
| 'attributes' => __( 'Item Attributes', 'text_domain' ), | |
| 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), | |
| 'all_items' => __( 'All Items', 'text_domain' ), | |
| 'add_new_item' => __( 'Add New Item', 'text_domain' ), | |
| 'add_new' => __( 'Add New', 'text_domain' ), | |
| 'new_item' => __( 'New Item', 'text_domain' ), | |
| 'edit_item' => __( 'Edit Item', 'text_domain' ), | |
| 'update_item' => __( 'Update Item', 'text_domain' ), | |
| 'view_item' => __( 'View Item', 'text_domain' ), | |
| 'view_items' => __( 'View Items', 'text_domain' ), | |
| 'search_items' => __( 'Search Item', 'text_domain' ), | |
| 'not_found' => __( 'Not found', 'text_domain' ), | |
| 'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ), | |
| 'featured_image' => __( 'Featured Image', 'text_domain' ), | |
| 'set_featured_image' => __( 'Set featured image', 'text_domain' ), | |
| 'remove_featured_image' => __( 'Remove featured image', 'text_domain' ), | |
| 'use_featured_image' => __( 'Use as featured image', 'text_domain' ), | |
| 'insert_into_item' => __( 'Insert into item', 'text_domain' ), | |
| 'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ), | |
| 'items_list' => __( 'Items list', 'text_domain' ), | |
| 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), | |
| 'filter_items_list' => __( 'Filter items list', 'text_domain' ), | |
| ); | |
| $args = array( | |
| 'label' => __( 'Post Type', 'text_domain' ), | |
| 'description' => __( 'Post Type Description', 'text_domain' ), | |
| 'labels' => $labels, | |
| 'supports' => array( 'title', 'thumbnail', 'editor'), | |
| 'taxonomies' => array( 'category', 'post_tag' ), | |
| 'hierarchical' => false, | |
| 'public' => true, | |
| 'show_ui' => true, | |
| 'show_in_menu' => true, | |
| 'menu_position' => 5, | |
| 'show_in_admin_bar' => true, | |
| 'show_in_nav_menus' => true, | |
| 'can_export' => true, | |
| 'has_archive' => true, | |
| 'exclude_from_search' => false, | |
| 'publicly_queryable' => true, | |
| 'capability_type' => 'post', | |
| 'show_in_rest' => true, | |
| ); | |
| register_post_type( 'post_type', $args ); | |
| } | |
| // Register Custom Taxonomy | |
| function custom_taxonomy() { | |
| $labels = array( | |
| 'name' => _x( 'Taxonomies', 'Taxonomy General Name', 'text_domain' ), | |
| 'singular_name' => _x( 'Taxonomy', 'Taxonomy Singular Name', 'text_domain' ), | |
| 'menu_name' => __( 'Taxonomy', 'text_domain' ), | |
| 'all_items' => __( 'All Items', 'text_domain' ), | |
| 'parent_item' => __( 'Parent Item', 'text_domain' ), | |
| 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), | |
| 'new_item_name' => __( 'New Item Name', 'text_domain' ), | |
| 'add_new_item' => __( 'Add New Item', 'text_domain' ), | |
| 'edit_item' => __( 'Edit Item', 'text_domain' ), | |
| 'update_item' => __( 'Update Item', 'text_domain' ), | |
| 'view_item' => __( 'View Item', 'text_domain' ), | |
| 'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ), | |
| 'add_or_remove_items' => __( 'Add or remove items', 'text_domain' ), | |
| 'choose_from_most_used' => __( 'Choose from the most used', 'text_domain' ), | |
| 'popular_items' => __( 'Popular Items', 'text_domain' ), | |
| 'search_items' => __( 'Search Items', 'text_domain' ), | |
| 'not_found' => __( 'Not Found', 'text_domain' ), | |
| 'no_terms' => __( 'No items', 'text_domain' ), | |
| 'items_list' => __( 'Items list', 'text_domain' ), | |
| 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), | |
| ); | |
| $args = array( | |
| 'labels' => $labels, | |
| 'hierarchical' => false, | |
| 'public' => true, | |
| 'show_ui' => true, | |
| 'show_admin_column' => true, | |
| 'show_in_nav_menus' => true, | |
| 'show_tagcloud' => true, | |
| ); | |
| register_taxonomy( 'taxonomy', array( 'post_type' ), $args ); | |
| } | |
| } | |
| new Custom_Post_Type(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment