I've one Custom Publish Type 'story' and 2 taxonomies, 'artist' and 'writer'.

I've handled to obtain a Custom Permalink Structure like /%artist/%author%/%story% using this method (started again code):

    add_action('init', 'custom_init');
    add_filter('post_type_link', 'story_permalink', 10, 3);

    function custom_init(){  
        $story = array(  
        'query_var' => true,
        'rewrite' => false,
        $artist = array(
        'query_var' => true,
        'rewrite' => true
        $writer = array(
            'query_var' => true,
            'rewrite' => true

        register_post_type('story', $story);
        register_taxonomy('artist', 'story', $artist);
        register_taxonomy('writer', 'story', $writer);

        global $wp_rewrite;
        $story_structure = '/%artist%/%writer%/%story%';
        $wp_rewrite->add_rewrite_tag("%story%", '([^/]+)', "story=");
        $wp_rewrite->add_permastruct('story', $story_structure, false);

    function story_permalink($permalink, $post_id, $leavename){
        $post = get_post($post_id);

        $rewritecode = array(
        $leavename? '' : '%postname%',
        $leavename? '' : '%pagename%',

        if('' != $permalink && !in_array($post->post_status, array('draft', 'pending', 'auto-draft'))){

            if (strpos($permalink, '%artist%') !== FALSE){
            $terms = wp_get_object_terms($post->ID, 'artist');  
            if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $artist = $terms[0]->slug;
            else $artist = 'unassigned-artist';         

        if (strpos($permalink, '%writer%') !== FALSE){
            $terms = wp_get_object_terms($post->ID, 'writer');  
            if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $writer = $terms[0]->slug;
            else $writer = 'unassigned-writer';         

        $rewritereplace = array(
        $permalink = str_replace($rewritecode, $rewritereplace, $permalink);
        return $permalink;

That provides me something similar to /jason/john/the-cat-is-under-the-table.

However the structures which i actually need are:


Maybe is simply too easy, but can't really learn how to understand this done because I'm not sure how to approach Custom Publish Types and Taxonomies within an homogeneized Custom Permalink Structure.

Any assistance to solve this is greatly appreciated.

Appears like this is exactly what you're searching for. Found this post after i were built with a similar problem.