Skip to main content
4 of 4
added 320 characters in body; edited tags
Pieter Goosen
  • 55.4k
  • 23
  • 115
  • 209

Unable to differentiate between two categories under custom post type on single.php

I have created A custom post type as mentioned in my older question

When I try to use get_the_category() function to retrieve the category of the post(if it is symphony or noir). It returns "Array". How can I keep the posts under the two categories separate which do not interfere in the pagination of one category.My custom post type with a taxonomy 14kgoldsilver

The section where I select the category for each post

     /*Custom post type 14K Gold and Silver*/
   function my_custom_post_14kgs() {
       $labels = array(
    'name'               => _x( '14k Gold & Silver', 'post type general name' ),
    'singular_name'      => _x( '14k Gold & Silver', 'post type singular name' ),
    'add_new'            => _x( 'Add New', 'book' ),
    'add_new_item'       => __( 'Add New Item' ),
    'edit_item'          => __( 'Modify Item' ),
    'new_item'           => __( 'New Item' ),
    'all_items'          => __( 'All Items' ),
    'view_item'          => __( 'View Item' ),
    'search_items'       => __( 'Search Items' ),
    'not_found'          => __( 'No Products found' ),
    'not_found_in_trash' => __( 'No products found in trash' ),
    'parent_item_colon'  => '',
    'menu_name'          => '14k Gold & Silver'
);
$args = array(
    'labels'        => $labels,
    'description'   => '',
    'public'        => true,
    'menu_position' => 5,
    'supports'      => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ),
    'has_archive'   => true,
    'hierarchical'  => true,
    'rewrite'       => array('slug' => '14k-gold-silver/%14kgscollection%','with_front' => false),
    'query_var'     => true,
    //'rewrite'     => true,
    //'publicly_queryable' => false,
);
register_post_type( '14kgs', $args );
   }
   add_action( 'init', 'my_custom_post_14kgs' );

   function my_taxonomies_product_14kgs() {
$labels = array(
    'name'              => _x( '14kgscollection', 'taxonomy general name' ),
    'singular_name'     => _x( '14kgscollection', 'taxonomy singular name' ),
    'search_items'      => __( 'Search Product Categories' ),
    'all_items'         => __( 'All Product Categories' ),
    'parent_item'       => __( 'Parent Product Category' ),
    'parent_item_colon' => __( 'Parent Product Category:' ),
           'edit_item'         => __( 'Edit Product Category' ),
           'update_item'       => __( 'Update Product Category' ),
           'add_new_item'      => __( 'Add New Product Category' ),
           'new_item_name'     => __( 'New Product Category' ),
           'menu_name'         => __( '14kgscollection' ),
       );
       $args = array(
                  'labels' => $labels,
                  'hierarchical'    => true,
                  'public'      => true,
                  'query_var'       => '14kgscollection',

                  'rewrite'     =>  array('slug' => '14k-gold-silver' ),
                  '_builtin'        => false,
       );
       register_taxonomy( '14kgscollection', '14kgs', $args );
   }
   add_action( 'init', 'my_taxonomies_product_14kgs', 0 );


   /*Filter permalink structure*/
   add_filter('post_link', 'collection14kgs_permalink', 1, 3);
   add_filter('post_type_link', 'collection14kgs_permalink', 1, 3);

   function collection14kgs_permalink($permalink, $post_id, $leavename) {
        if (strpos($permalink, '%14kgscollection%') === FALSE) return $permalink;
           // Get post
           $post = get_post($post_id);
            if (!$post) return $permalink;

            // Get taxonomy terms
            $terms = wp_get_object_terms($post->ID, '14kgscollection');
            if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0]))
                $taxonomy_slug = $terms[0]->slug;
            else $taxonomy_slug = 'no-collection';

        return str_replace('%14kgscollection%', $taxonomy_slug, $permalink);
    }
Disha
  • 21
  • 2