How to add location as category?

Ok, based on what you wrote in your comments you’ll want to go to your wp-content/plugins/ directory and create a new directory in there. Let’s call it: zains-locations.

In that directory, make a new file called: zains-locations.php

In that file, add the following:

<?php
    /*
    Plugin Name: Zain's Location Taxonomy
    Description: Add's location taxonomy.
    Version:     1.0
    Author:      zain
    Author URI:  http://www.yourdomain.com
    Text Domain: zain
    License:     GPLv3
    License URI: http://www.gnu.org/licenses/gpl-3.0.html
    */

    //BLOCK DIRECT ACCESS
    if ( ! defined( 'ABSPATH' ) ) {
            exit; // Exit if accessed directly
    }

    function zain_location_taxonomies() {
        //Deliverables
        $labels = array(
            'name'                       => _x( 'Locations', 'taxonomy general name', 'zain' ),
            'singular_name'              => _x( 'Location', 'taxonomy singular name', 'zain' ),
            'search_items'               => __( 'Search Locations', 'zain' ),
            'popular_items'              => __( 'Popular Locations', 'zain' ),
            'all_items'                  => __( 'All Locations', 'zain' ),
            'parent_item'                => null,
            'parent_item_colon'          => null,
            'edit_item'                  => __( 'Edit Location', 'zain' ),
            'update_item'                => __( 'Update Location', 'zain' ),
            'add_new_item'               => __( 'Add New Location', 'zain' ),
            'new_item_name'              => __( 'New Locations Name', 'zain' ),
            'separate_items_with_commas' => __( 'Separate Locations with commas', 'zain' ),
            'add_or_remove_items'        => __( 'Add or remove Location', 'zain' ),
            'choose_from_most_used'      => __( 'Choose from the most used locations', 'zain' ),
            'not_found'                  => __( 'No Locations found.', 'zain' ),
            'menu_name'                  => __( 'Locations', 'zain' ),
        );
        $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' => 'zain-location' ),
        );
        register_taxonomy( 'zain_locations', 'posts', $args );
    }
    add_action( 'init', 'zain_location_taxonomies', 0 );

    function zain_locations( $post ) {
        global $post;
        $zain_locations     = get_the_terms( $post->ID, 'zain_locations' );
        if ( !empty( $cgport_deliverables ) ) :
            $locations_string   = join( ', ', wp_list_pluck( $zain_locations, 'name' ) );
            echo '<div class="zain-locations">';
                echo '<span class="zain-location">' . $locations_string . '</span>';
            echo '</div>';
        endif;
    }
?>

Of course, edit and customize what you need, like your domain in the write up and if you’re going to keep using this and maintaining it, you should write a ReadMe.md file with a changelog and such.

Once this is installed you have to tackle the next issue, which is how to get the taxonomy where you want it in the theme. In the code above, with the plugin, I’ve generated a template tag you can use:

<?php zain_locations(); ?>

Now, depending on where and how you’re using it, for example if outside the loop, you need to pass the post ID into it like so <?php zain_locations( $post->ID ); ?>, but if inside the loop you can just go with the tag itself.

Looking at the documentation for Bimber there doesn’t appear to be any hooks in the template where you could use the plugin to interject the template tag at any certain point, so instead you’re most likely going to have make a child theme: http://docs.bimber.bringthepixel.com/articles/your-custom-code/using-the-child-theme/index.html

Beyond that, you’ll probably have to write a bit of CSS to get the locations to display the way you want them to and then continue along refining the details.

Hope that helps.