Sarathlal N

Make custom taxonomies for WordPress as a plugin

The taxonomies are way to group posts & pages in WordPress. In WordPress, to group our contents, we normally use categories & tags. They are two important & default taxonomies in WordPress. Same like categories & tags, we can make our own taxonomies in WordPress. They are known as custom taxonomies.

For example, consider a news site, we can categorize news & we can assign tags for them. If there is a possibility to group news in a location wise, it will improve usability of our website.

Like such situations, we can make our own taxonomies like location & we can group our content with new taxonomies. Today I share a code snippet to make custom taxonomy, “Location” for WordPress Posts.

To make my custom taxonomies as a theme independent, I like to make it as a plugin.

First, we want to make a folder inside WordPress plugin directory for our custom taxonomy plugin. Then make a php file inside it & paste below code in to it.

<?php
/*
Plugin Name: Location Taxonomies
Description: Declares a plugin that will create a custom taxonomy "Location" to group posts.
Version: 1.0
Author: Your Name
Author URI: http://yourdomain.com/
License: GPLv2
*/

function add_location_custom_taxonomies() {
    // Add new "Locations" taxonomy to Posts
    register_taxonomy('location', 'post', array(
        // Hierarchical taxonomy (like categories)
        'hierarchical' => true,
        // This array of options controls the labels displayed in the WordPress Admin UI
        'labels' => array(
            'name' => _x( 'Locations', 'taxonomy general name' ),
            'singular_name' => _x( 'Location', 'taxonomy singular name' ),
            'search_items' =>  __( 'Search Locations' ),
            'all_items' => __( 'All Locations' ),
            'parent_item' => __( 'Parent Location' ),
            'parent_item_colon' => __( 'Parent Location:' ),
            'edit_item' => __( 'Edit Location' ),
            'update_item' => __( 'Update Location' ),
            'add_new_item' => __( 'Add New Location' ),
            'new_item_name' => __( 'New Location Name' ),
            'menu_name' => __( 'Locations' ),
        ),
        // Control the slugs used for this taxonomy
        'rewrite' => array(
            'slug' => 'locations', // This controls the base slug that will display before each term
            'with_front' => false, // Don't display the category base before "/locations/"
            'hierarchical' => true // This will allow URL's like "/locations/boston/cambridge/"
        ),
    ));
}
add_action( 'init', 'add_location_custom_taxonomies', 0 );

Inside this code snippet, the first part is the information about our plugin. Here we name it, give a brief description & give essential credits to plugin author.

Then we make a function to create location taxonomy & register it as a taxonomy.

Just save that PHP file & then activate our new plugin in WordPress admin end. A new “Locations” box will appear to the right of our posts in the WordPress admin area. We can use this the way like categories.

Got a project in mind? Send me a quick message, and I'll get back to you within 24 hours!.

Recent Posts

  1. Disabling Payment Methods in WooCommerce Based on Conditions
  2. How to Update Product Quantity in WooCommerce Using Custom Code
  3. Dynamically Generating a Table of Contents in WordPress
  4. Direct Checkout in WooCommerce - Add Product to Cart from Checkout Page & Skip Shop, Product, and Cart Pages
  5. Understanding the Impact of git reset --hard Command

Your Questions / Comments

If you found this article interesting, found errors, or just want to discuss about it, please get in touch.