Created
December 4, 2020 00:44
-
-
Save nguyentuandat/120d48bd71e492ead0853f514b23a933 to your computer and use it in GitHub Desktop.
Example register post type and taxonomy
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
| function wporg_custom_post_type() { | |
| register_post_type('book', | |
| array( | |
| 'labels' => array( | |
| 'name' => __('Books', 'textdomain'), | |
| 'singular_name' => __('Book', 'textdomain'), | |
| ), | |
| 'public' => true, | |
| 'has_archive' => true, | |
| ) | |
| ); | |
| } | |
| add_action('init', 'wporg_custom_post_type'); | |
| /** | |
| * Create two taxonomies, genres and writers for the post type "book". | |
| * | |
| * @see register_post_type() for registering custom post types. | |
| */ | |
| function wpdocs_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 ); | |
| unset( $args ); | |
| unset( $labels ); | |
| // 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 ); | |
| } | |
| // hook into the init action and call create_book_taxonomies when it fires | |
| add_action( 'init', 'wpdocs_create_book_taxonomies', 0 ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment