lucbord
6/16/2016 - 3:29 PM

Multiple taxonomy registration

Multiple taxonomy registration

/**
 * Register Multiple Taxonomies
 *
 * @author Bill Erickson
 * @link http://www.billerickson.net/code/register-multiple-taxonomies/
 */

function be_register_taxonomies() {

	$taxonomies = array(
		array(
			'slug'         => 'job-department',
			'single_name'  => 'Department',
			'plural_name'  => 'Departments',
			'post_type'    => 'jobs',
			'rewrite'      => array( 'slug' => 'department' ),
		),
		array(
			'slug'         => 'job-type',
			'single_name'  => 'Type',
			'plural_name'  => 'Types',
			'post_type'    => 'jobs',
			'hierarchical' => false,
		),
		array(
			'slug'         => 'job-experience',
			'single_name'  => 'Min-Experience',
			'plural_name'  => 'Min-Experiences',
			'post_type'    => 'jobs',
		),
	);

	foreach( $taxonomies as $taxonomy ) {
		$labels = array(
			'name' => $taxonomy['plural_name'],
			'singular_name' => $taxonomy['single_name'],
			'search_items' =>  'Search ' . $taxonomy['plural_name'],
			'all_items' => 'All ' . $taxonomy['plural_name'],
			'parent_item' => 'Parent ' . $taxonomy['single_name'],
			'parent_item_colon' => 'Parent ' . $taxonomy['single_name'] . ':',
			'edit_item' => 'Edit ' . $taxonomy['single_name'],
			'update_item' => 'Update ' . $taxonomy['single_name'],
			'add_new_item' => 'Add New ' . $taxonomy['single_name'],
			'new_item_name' => 'New ' . $taxonomy['single_name'] . ' Name',
			'menu_name' => $taxonomy['plural_name']
		);
		
		$rewrite = isset( $taxonomy['rewrite'] ) ? $taxonomy['rewrite'] : array( 'slug' => $taxonomy['slug'] );
		$hierarchical = isset( $taxonomy['hierarchical'] ) ? $taxonomy['hierarchical'] : true;
	
		register_taxonomy( $taxonomy['slug'], $taxonomy['post_type'], array(
			'hierarchical' => $hierarchical,
			'labels' => $labels,
			'show_ui' => true,
			'query_var' => true,
			'rewrite' => $rewrite,
		));
	}
	
}
add_action( 'init', 'be_register_taxonomies' );