Archive of post format for Custom Post Type

There are no rewrite rules generated for post formats specific to post type. If you want pretty URLs for post type specific post formats, you need to add them yourself.

// post_type doesn't seem to work,
// add rules to set custom query var
function resource_post_formats_urls() {
    add_rewrite_rule(
        'resource/type/([^/]+)/?',
        'index.php?post_format=$matches[1]&resource_only=1',
        'top'
    );
    // pagination
    add_rewrite_rule(
        'resource/type/([^/]+)/page/([0-9]+)/?',
        'index.php?post_format=$matches[1]&paged=$matches[2]&resource_only=1',
        'top'
    );
}
add_action( 'init', 'resource_post_formats_urls' );

// add query var so it's recognized
function resource_query_vars( $qvars ) {
    $qvars[] = 'resource_only';
    return $qvars;
}
add_filter( 'query_vars', 'resource_query_vars' , 10, 1 );

// check if query var is set and modify post_type for the query
function modify_resource_tax_query( $query ) {
    if( isset( $query->query_vars['resource_only'] ) ){
        $query->set( 'post_type', array('resource') );
    }
}
add_action( 'pre_get_posts', 'modify_resource_tax_query' );

Note that this will only handle incoming requests for existing formats. You’ll need to manually create the links to these pages.

Another way to handle it is to create your own custom format taxonomy and set the rewrite slug to resource/type.