How to Create custom post type taxonomy category in WordPress

July 27, 2023 by Frederick in Web development

Custom Taxonomy for Custom Post Types

Taxonomies are a great way to group things together and help us to search posts belonging to a specific group. In WordPress we generally use Categories and Tags as taxonomies. The steps given below explain how to create custom taxonomies for your CPT. 

Step 1 : Register Custom Post Type

Open functions.php file in your theme and Paste these Code, in our case we will register Photogallery as CPT. 

// Photo Gallary Customs Post Register
function create_posttype()
{
register_post_type(
'photogallery',
array(
'labels' => array(
'name' => __('Photo gallery'),
'singular_name' => __('photogallery')
),
'public' => true,
'menu_position' => 5,
'supports' => array('editor', 'title', 'thumbnail',),
'has_archive' => true,
'rewrite' => array('slug' => 'photogallery'),
'taxonomies' => array('photogallery', 'photogallery-category'),
)
);
}
add_action('init', 'create_posttype');

Making Custom Archive For Custom Post Type


Create a file name archive-photogallery.php in theme's root directory and paste these code in it. 

Url: mywebsite.com/photogallery


Note: (if url does't work please do that)This will re-write the htaccess file and then the re-write should work.
  1. Navigate to Settings -> permalinks
  2. Change the permalink structure to Default
  3. Save settings
  4. Change to custom structure or post name (or any other structure)
  5. Save Settings

<!-- archive-photogallery.php -->

<?php get_header(); ?>
<div id="primary">
<div id="content" role="main">
<?php $mypost = array('post_type' => 'photogallery',);
$loop = new WP_Query($mypost); ?>
<?php while ($loop->have_posts()) : $loop->the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header class="entry-header">
<div style="float: top; margin: 10px">
<?php the_post_thumbnail(); ?>
</div>
<strong>Title: </strong><?php the_title(); ?><br />
<br />
</header>
<div class="entry-content">
<!-- <?php the_content(); ?> -->
</div>
<hr />
</article>
<?php endwhile; ?>
</div>
</div>
<?php wp_reset_query(); ?>
<?php get_footer(); ?>

Step 2 : Implementation of Custom Function and Registering Custom Taxonomy


Paste these Code in functions.php as well, in that case we will register Photogallery's  custom Taxonomy. 


//Create category for Photo post type
function tr_create_my_taxonomy()
{
register_taxonomy(
'photogallery-categories',
'photogallery',
array(
'label' => __('Photogallery Categories'),
'rewrite' => array('slug' => 'photogallery-category'),
'hierarchical' => true,
'has_archive' => true
)
);
}
add_action('init', 'tr_create_my_taxonomy');

Making Custom Archive For Custom Taxonomy


Create a file name taxonomy-photogallery-categories.php in theme's root directory and paste these code in it. 

<?php get_header(); ?>
<div class="custom_container">
<div class="photo_subcat_posts_grid">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="single-block auto">
<div class="img-box">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php if (has_post_thumbnail()) {
the_post_thumbnail('custom-size');
} else { ?>
<img src="<?php bloginfo('template_directory'); ?>/img/default-img_final.gif" alt="<?php the_title(); ?>" />
<?php } ?></a>
</div>
<h4><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php echo wp_trim_words(get_the_title(), 10); ?></a></h4>
</div>
<?php endwhile;
endif ?>
</div>
<div class="pagination1">
<div class="pagi_inner">
<?php echo paginate_links(array(
'prev_text' => __('&laquo;', 'textdomain'),
'next_text' => __('&raquo;', 'textdomain'),

)); ?>
</div>
</div>
</div>
<?php get_footer(); ?>

Other Support Options:


To support custom post type post in different templaet

// To Support Custom Post Format in different Template

function namespace_add_custom_types($query)
{
if (is_single() || is_category() || is_tag() && empty($query->query_vars['suppress_filters'])) {
$query->set('post_type', array(
'post', 'nav_menu_item', 'photogallery','videogallery'
));
return $query;
}
}
add_filter('pre_get_posts', 'namespace_add_custom_types');

Custom Post type Post Query



<?php $args1 = array(
'post_type' => 'photogallery',
'posts_per_page' => 10,
'order' => 'DESC',
);
$lastpost = new WP_Query($args1);
if ($lastpost->have_posts()) : while ($lastpost->have_posts()) : $lastpost->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php if (has_post_thumbnail()) {
the_post_thumbnail();
} else { ?>
<img src="<?php bloginfo('template_directory'); ?>/img/default-img_final.gif" alt="<?php the_title(); ?>" />
<?php } ?></a>
<a href="<?php the_permalink(); ?>"><span class="media-body"><?php echo wp_trim_words(get_the_title(), 10); ?></span></a>
</li>
<?php endwhile;
endif ?>

Leave a comment


Name

Email


Website


Messagge



Comments

Federico Schiocchet 25 feb, 2018

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea coSed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium

Jessica Albuzi 05 Dec, 2016

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea coSed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium

Don Jhon 21 feb, 2016

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea coSed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium

Sara Molin 14 Mar, 2016

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea coSed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium

Vaky Yo 11 feb, 2017

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea coSed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium