Last active
March 19, 2019 19:07
-
-
Save hellofromtonya/54370608b2d2b74b1d03ee74eda36e2f to your computer and use it in GitHub Desktop.
Show Custom Taxonomy Panel in the Gutenberg Editor
This file contains 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 | |
/** | |
* Adds Books to your website. | |
* | |
* @package KnowTheCode\Books | |
* @author hellofromTonya | |
* @license GPL-2.0+ | |
* | |
* @wordpress-plugin | |
* Plugin Name: Books | |
* Plugin URI: https://KnowTheCode.io | |
* Description: Adds books to your website. | |
* Version: 1.0.0 | |
* Author: hellofromTonya | |
* Author URI: https://KnowTheCode.io | |
* Text Domain: books | |
* License: GPL-2.0+ | |
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt | |
* GitHub Plugin URI: https://KnowTheCode.io | |
* Requires PHP: 5.6 | |
* Requires WP: 4.9 | |
*/ | |
namespace KnowTheCode\Books; | |
add_action( 'init', __NAMESPACE__ . '\register_book_post_type' ); | |
/** | |
* Register a Book custom post type. | |
* | |
* @since 1.0.0 | |
*/ | |
function register_book_post_type() { | |
$labels = [ | |
'name' => _x( 'Books', 'post type general name', 'books' ), | |
'singular_name' => _x( 'Book', 'post type singular name', 'books' ), | |
'menu_name' => _x( 'Books', 'admin menu', 'books' ), | |
'name_admin_bar' => _x( 'Book', 'add new on admin bar', 'books' ), | |
'add_new' => _x( 'Add New', 'book', 'books' ), | |
'add_new_item' => __( 'Add New Book', 'books' ), | |
'new_item' => __( 'New Book', 'books' ), | |
'edit_item' => __( 'Edit Book', 'books' ), | |
'view_item' => __( 'View Book', 'books' ), | |
'all_items' => __( 'All Books', 'books' ), | |
'search_items' => __( 'Search Books', 'books' ), | |
'parent_item_colon' => __( 'Parent Books:', 'books' ), | |
'not_found' => __( 'No books found.', 'books' ), | |
'not_found_in_trash' => __( 'No books found in Trash.', 'books' ), | |
]; | |
$args = [ | |
'labels' => $labels, | |
'description' => __( 'Cool books.', 'books' ), | |
'public' => true, | |
'publicly_queryable' => true, | |
'show_ui' => true, | |
'show_in_menu' => true, | |
'show_in_rest' => true, // To use Gutenberg editor. | |
'query_var' => true, | |
'rewrite' => [ 'slug' => 'book' ], | |
'capability_type' => 'post', | |
'has_archive' => true, | |
'hierarchical' => false, | |
'menu_position' => null, | |
'supports' => [ 'title', 'editor', 'author', 'thumbnail', 'excerpt' ], | |
]; | |
register_post_type( 'book', $args ); | |
} | |
add_action( 'init', __NAMESPACE__ . '\register_genre_taxonomy', 0 ); | |
/** | |
* Register the Genre custom taxonomy. | |
* | |
* @since 1.0.0 | |
*/ | |
function register_genre_taxonomy() { | |
$labels = [ | |
'name' => _x( 'Genres', 'taxonomy general name', 'books' ), | |
'singular_name' => _x( 'Genre', 'taxonomy singular name', 'books' ), | |
'search_items' => __( 'Search Genres', 'books' ), | |
'all_items' => __( 'All Genres', 'books' ), | |
'parent_item' => __( 'Parent Genre', 'books' ), | |
'parent_item_colon' => __( 'Parent Genre:', 'books' ), | |
'edit_item' => __( 'Edit Genre', 'books' ), | |
'update_item' => __( 'Update Genre', 'books' ), | |
'add_new_item' => __( 'Add New Genre', 'books' ), | |
'new_item_name' => __( 'New Genre Name', 'books' ), | |
'menu_name' => __( 'Genre', 'books' ), | |
]; | |
$args = [ | |
'hierarchical' => true, | |
'labels' => $labels, | |
'show_ui' => true, | |
'show_admin_column' => true, | |
'show_in_rest' => true, // Needed for tax to appear in Gutenberg editor. | |
'query_var' => true, | |
'rewrite' => [ 'slug' => 'genre' ], | |
]; | |
register_taxonomy( 'genre', [ 'book' ], $args ); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment