Add Author Category Tag Support to Custom Post Type

Add Author Category Tag Support to Custom Post Type

The custom post type do not support the category tags and authors here is how you can have it done

Following is a part of hook used to add support

function add_wp_taxonomy_to_cpt() {
	//Replace post_type with actual CPT slug
	register_taxonomy_for_object_type( 'category', 'articles' ); 
	register_taxonomy_for_object_type( 'post_tag', 'articles' );
	add_post_type_support( 'articles', 'author' );
}
add_action( 'init', 'add_wp_taxonomy_to_cpt' );


function my_pre_get_posts($q) {
	if( (is_category() || is_tag() || is_author() ) && $q->is_main_query() ) {
		$pt = get_query_var('post_type');
		if(!$pt)
			$pt = array('nav_menu_item', 'articles'); // don't forget nav_menu_item to allow menus to work!
		$q->set('post_type', $pt);		
    }
}
add_filter('pre_get_posts', 'my_pre_get_posts');

Following is part of code to be used to declare support for category tags and author while creating a custom post type

// Register Custom Post Type
function custom_articles_type() {

	$labels = array(
		'name'                  => _x( 'Articles', 'Post Type General Name', 'text_domain' ),
		'singular_name'         => _x( 'Articles', 'Post Type Singular Name', 'text_domain' ),
		'menu_name'             => __( 'Articles', 'text_domain' ),
		'name_admin_bar'        => __( 'Articles', 'text_domain' ),
		'archives'              => __( 'Articles Archives', 'text_domain' ),
		'attributes'            => __( 'Articles Attributes', 'text_domain' ),
		'parent_item_colon'     => __( 'Parent Articles:', 'text_domain' ),
		'all_items'             => __( 'All Articles', 'text_domain' ),
		'add_new_item'          => __( 'Add New Article', 'text_domain' ),
		'add_new'               => __( 'Add Article', 'text_domain' ),
		'new_item'              => __( 'New Article', 'text_domain' ),
		'edit_item'             => __( 'Edit Article', 'text_domain' ),
		'update_item'           => __( 'Update Article', 'text_domain' ),
		'view_item'             => __( 'View Article', 'text_domain' ),
		'view_items'            => __( 'View Article', 'text_domain' ),
		'search_items'          => __( 'Search Article', 'text_domain' ),
		'not_found'             => __( 'Not found', 'text_domain' ),
		'not_found_in_trash'    => __( 'Not found in Trash', 'text_domain' ),
		'featured_image'        => __( 'Featured Image', 'text_domain' ),
		'set_featured_image'    => __( 'Set featured image', 'text_domain' ),
		'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
		'use_featured_image'    => __( 'Use as featured image', 'text_domain' ),
		'insert_into_item'      => __( 'Insert into item', 'text_domain' ),
		'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
		'items_list'            => __( 'Items list', 'text_domain' ),
		'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
		'filter_items_list'     => __( 'Filter items list', 'text_domain' ),
	);
	$args = array(
		'label'                 => __( 'Articles', 'text_domain' ),
		'description'           => __( 'Articles', 'text_domain' ),
		'labels'                => $labels,
		'supports'              => array( 'title', 'editor', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', 'page-attributes', 'post-formats' ),
		'taxonomies'            => array( 'category','post_tag', ),
		'hierarchical'          => false,
		'public'                => true,
		'show_ui'               => true,
		'show_in_menu'          => true,
		'menu_position'         => 5,
		'show_in_admin_bar'     => true,
		'show_in_nav_menus'     => true,
		'can_export'            => true,
		'has_archive'           => true,
		'exclude_from_search'   => false,
		'publicly_queryable'    => true,
		'query_var'  			=> true,
		'capability_type'       => 'page',
	);
	register_post_type( 'articles', $args );

}
add_action( 'init', 'custom_articles_type', 0 );

Leave a Reply

Your email address will not be published. Required fields are marked *