How to add custom taxonomies in WordPress without plugins
In the same vein of our previous post about creating a Custom Post Type without plugins, here we’ll see how to create custom taxonomies.
In this example we create two taxonomies (director
and year
) to associate to an hypothetical custom post type called movie
. You only need to paste the below code in your functions.php
and modify what you need (check the comments).
/*
* Add Custom Taxonomies
*/
function netgloo_custom_taxonomies() {
$taxonomies = array(
// Director
array(
'name' => 'director', // here the name of the taxonomy
'single' => 'Director', // here the single taxonomy name to show in the backend
'plural' => 'Directors', // here the plural taxonomy name to show in the backend
'cpt' => 'movie' ), // which Custom Post Type to associate the taxonomy
// Year
array(
'name' => 'year',
'single' => 'Year',
'plural' => 'Years',
'cpt' => 'movie' )
);
foreach ($taxonomies as $taxonomy) {
$name = $taxonomy['name'];
$single = $taxonomy['single'];
$plural = $taxonomy['plural'];
$cpt = $taxonomy['cpt'];
$labels = array(
'name' => _x( $plural, 'taxonomy general name' ),
'singular_name' => _x( $single, 'taxonomy singular name' ),
'search_items' => __( 'Cerca '. $plural ),
'all_items' => __( 'Tutte le '. $plural ),
'parent_item' => __( 'Parent '. $single ),
'parent_item_colon' => __( 'Parent '. $single.':' ),
'edit_item' => __( 'Modifica '. $single ),
'update_item' => __( 'Aggiorna '. $single ),
'add_new_item' => __( 'Aggiungi '. $single ),
'new_item_name' => __( 'Nuova '. $single ),
'menu_name' => __( $plural )
);
$args = array(
'labels' => $labels,
'hierarchical' => true, // false: as Tags, true: as Category
'show_ui' => true,
'show_admin_column' => true
);
register_taxonomy( $name, $cpt, $args );
} //foreach
}
add_action( 'init', 'netgloo_custom_taxonomies', 0 );