Enhancing WordPress functionality often involves creating custom content types. By using register_post_type
and register_taxonomy
, you can build tailored solutions for your site. Let’s go through the process together.
Step 1: Define the Post Type “Books”
We’ll register a new post type named Books using the function below:
function create_books_post_type() { $labels = array( 'name' => 'Books', 'singular_name' => 'Book', 'menu_name' => 'Books', 'add_new' => 'Add New', 'add_new_item' => 'Add New Book', 'edit_item' => 'Edit Book', 'view_item' => 'View Book', 'all_items' => 'All Books', 'search_items' => 'Search Books', 'not_found' => 'No Books Found', 'not_found_in_trash' => 'No Books in Trash', ); $args = array( 'labels' => $labels, 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'books'), 'supports' => array('title', 'editor', 'thumbnail'), ); register_post_type('book', $args); } add_action('init', 'create_books_post_type');
Step 2: Create the “Genres” Taxonomy
Now, let’s define a custom taxonomy called Genres for classifying books.
function register_genres_taxonomy() { $labels = array( 'name' => 'Genres', 'singular_name' => 'Genre', 'search_items' => 'Search Genres', 'all_items' => 'All Genres', 'edit_item' => 'Edit Genre', 'add_new_item' => 'Add New Genre', 'new_item_name' => 'New Genre Name', 'menu_name' => 'Genres', ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'rewrite' => array('slug' => 'genre'), ); register_taxonomy('genre', 'book', $args); } add_action('init', 'register_genres_taxonomy');
Your WordPress site is now ready to handle “Books” as a content type, and “Genres” as their categories. This adds a whole new level of content organization.
Final Thoughts
WordPress customization using post types and taxonomies is a powerful way to expand your site. These functions open doors to fully structured and manageable content types.