Created
March 8, 2019 10:21
-
-
Save srdjan-jcc/27826bf2329be9939df06a6d6e3e2e77 to your computer and use it in GitHub Desktop.
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
<?php | |
/* | |
Plugin Name: Register Book post type | |
Version: 0.1 | |
*/ | |
add_action( 'init', 'codex_book_init' ); | |
/** | |
* Register a book post type. | |
* | |
* @link http://codex.wordpress.org/Function_Reference/register_post_type | |
*/ | |
function codex_book_init() { | |
$labels = array( | |
'name' => _x( 'Books', 'post type general name', 'your-plugin-textdomain' ), | |
'singular_name' => _x( 'Book', 'post type singular name', 'your-plugin-textdomain' ), | |
'menu_name' => _x( 'Books', 'admin menu', 'your-plugin-textdomain' ), | |
'name_admin_bar' => _x( 'Book', 'add new on admin bar', 'your-plugin-textdomain' ), | |
'add_new' => _x( 'Add New', 'book', 'your-plugin-textdomain' ), | |
'add_new_item' => __( 'Add New Book', 'your-plugin-textdomain' ), | |
'new_item' => __( 'New Book', 'your-plugin-textdomain' ), | |
'edit_item' => __( 'Edit Book', 'your-plugin-textdomain' ), | |
'view_item' => __( 'View Book', 'your-plugin-textdomain' ), | |
'all_items' => __( 'All Books', 'your-plugin-textdomain' ), | |
'search_items' => __( 'Search Books', 'your-plugin-textdomain' ), | |
'parent_item_colon' => __( 'Parent Books:', 'your-plugin-textdomain' ), | |
'not_found' => __( 'No books found.', 'your-plugin-textdomain' ), | |
'not_found_in_trash' => __( 'No books found in Trash.', 'your-plugin-textdomain' ) | |
); | |
$args = array( | |
'labels' => $labels, | |
'description' => __( 'Description.', 'your-plugin-textdomain' ), | |
'public' => true, | |
'publicly_queryable' => true, | |
'show_ui' => true, | |
'show_in_menu' => true, | |
'query_var' => true, | |
'rewrite' => array( 'slug' => 'book' ), | |
'capability_type' => 'post', | |
'has_archive' => true, | |
'hierarchical' => false, | |
'menu_position' => null, | |
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ), | |
'taxonomies' => array( 'category' ) | |
); | |
register_post_type( 'book', $args ); | |
} | |
// hook into the init action and call create_book_taxonomies when it fires | |
add_action( 'init', 'create_book_taxonomies', 0 ); | |
// create two taxonomies, genres and writers for the post type "book" | |
function create_book_taxonomies() { | |
// Add new taxonomy, make it hierarchical (like categories) | |
$labels = array( | |
'name' => _x( 'Genres', 'taxonomy general name', 'textdomain' ), | |
'singular_name' => _x( 'Genre', 'taxonomy singular name', 'textdomain' ), | |
'search_items' => __( 'Search Genres', 'textdomain' ), | |
'all_items' => __( 'All Genres', 'textdomain' ), | |
'parent_item' => __( 'Parent Genre', 'textdomain' ), | |
'parent_item_colon' => __( 'Parent Genre:', 'textdomain' ), | |
'edit_item' => __( 'Edit Genre', 'textdomain' ), | |
'update_item' => __( 'Update Genre', 'textdomain' ), | |
'add_new_item' => __( 'Add New Genre', 'textdomain' ), | |
'new_item_name' => __( 'New Genre Name', 'textdomain' ), | |
'menu_name' => __( 'Genre', 'textdomain' ), | |
); | |
$args = array( | |
'hierarchical' => true, | |
'labels' => $labels, | |
'show_ui' => true, | |
'show_admin_column' => true, | |
'query_var' => true, | |
'rewrite' => array( 'slug' => 'genre' ), | |
); | |
register_taxonomy( 'genre', array( 'book' ), $args ); | |
// Add new taxonomy, NOT hierarchical (like tags) | |
$labels = array( | |
'name' => _x( 'Writers', 'taxonomy general name', 'textdomain' ), | |
'singular_name' => _x( 'Writer', 'taxonomy singular name', 'textdomain' ), | |
'search_items' => __( 'Search Writers', 'textdomain' ), | |
'popular_items' => __( 'Popular Writers', 'textdomain' ), | |
'all_items' => __( 'All Writers', 'textdomain' ), | |
'parent_item' => null, | |
'parent_item_colon' => null, | |
'edit_item' => __( 'Edit Writer', 'textdomain' ), | |
'update_item' => __( 'Update Writer', 'textdomain' ), | |
'add_new_item' => __( 'Add New Writer', 'textdomain' ), | |
'new_item_name' => __( 'New Writer Name', 'textdomain' ), | |
'separate_items_with_commas' => __( 'Separate writers with commas', 'textdomain' ), | |
'add_or_remove_items' => __( 'Add or remove writers', 'textdomain' ), | |
'choose_from_most_used' => __( 'Choose from the most used writers', 'textdomain' ), | |
'not_found' => __( 'No writers found.', 'textdomain' ), | |
'menu_name' => __( 'Writers', 'textdomain' ), | |
); | |
$args = array( | |
'hierarchical' => false, | |
'labels' => $labels, | |
'show_ui' => true, | |
'show_admin_column' => true, | |
'update_count_callback' => '_update_post_term_count', | |
'query_var' => true, | |
'rewrite' => array( 'slug' => 'writer' ), | |
); | |
register_taxonomy( 'writer', 'book', $args ); | |
register_taxonomy( | |
'from_year', | |
array( 'post', 'book' ), | |
array( | |
'public' => true, | |
'label' => __( 'From Year' ), | |
'rewrite' => array( 'slug' => 'from_year' ), | |
'hierarchical' => true, | |
'show_in_rest' =>true, | |
) | |
); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment