How to show the entries in a custom taxonomy by author?

Well, when you need to modify a theme you create a “child theme.”
There are good instructions for how here.

So we would just create a safe copy of the modified code in a folder the other theme doesn’t overwrite.

What I think you want to do is create a custom post type “Book” and register this post type to a taxonomy of “Author.” Here is an example:

function book_object() {
    register_post_type('book', array(
        'labels' => array(
            'name' => __('Books', 'textdomain'),
            'singular_name' => __('Book', 'textdomain'),
            'add_new' => __('Add New', 'textdomain'),
            'add_new_item' => __('Add New Book', 'textdomain'),
            'edit_item' => __('Edit Book', 'textdomain'),
            'new_item' => __('New Book', 'textdomain'),
            'view_item' => __('View Book', 'textdomain')
        ),
        'description' => 'People like books.',
        'register_meta_box_cb' => 'book_fields',
        'public' => true,
        'menu_position' => 20,
        'supports' => array('title', 'editor', 'thumbnail',),
        'hierarchical' => true
    )
    );
}
    function book_fields() {
        add_meta_box('book_details', __('Book Details', 'textdomain'), 'book_fields_cb', 'book', 'normal', 'high');
        function book_fields_cb($post) {
            $value = get_post_meta($post->ID, 'pubdate', true);
            echo '<label for="pubdate">'.__('Publish date', 'textdomain').'</label><br />';
            echo '<input type="text" id="pubdate" name="pubdate" value="'.esc_attr($value).'" size="25" /><br />';
            $value = get_post_meta($post->ID, 'field_2', true);
            echo '<label for="field_2">'.__('More custom fields', 'textdomain').'</label><br />';
            echo '<input type="text" id="field_2" name="field_2" value="'.esc_attr($value).'" size="25" /><br />';
        }
    }

That creates the Book object.

To create taxonomy for Authors:

function author_taxonomy() {
    $labels = array(
        'name'              => _x( 'Authors', 'taxonomy general name' ),
        'singular_name'     => _x( 'Author', 'taxonomy singular name' ),
        'search_items'      => __( 'Search Authors' ),
        'all_items'         => __( 'All Authors' ),
        'parent_item'       => __( 'Parent Author' ),
        'parent_item_colon' => __( 'Parent Author:' ),
        'edit_item'         => __( 'Edit Author' ),
        'update_item'       => __( 'Update Author' ),
        'add_new_item'      => __( 'Add New Author' ),
        'new_item_name'     => __( 'New Author' ),
        'menu_name'         => __( 'Authors' ),
    );
    $args = array(
        'hierarchical'      => true,
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => array(
                                'slug' => 'authors',
                                'hierarchical' => true,
                                'with_front' => false
                            ),
    );
    register_taxonomy('author', array('book'), $args);
}

Then we hook these functions into WordPress like so:

add_action('init', 'my_init');
function my_init() {
    book_object();
    author_taxonomies();
}

That last part is usually placed at the top of the file. Some people drop the add_action lines in below the blocks of code they invoke, but I like to nest successive action calls at the top to help make sense of it all for me.

This code basically goes all by its lonesome in a file called functions.php – except you don’t put that functions.php in the old theme folder.

You create a new theme folder, with a new style.css – all it needs to have is the following comment at the top:

/*
 Theme Name:   My custom book portal
 Description:  Child theme of OLD-THEME-NAME
 Template:     OLD-THEME-SLUG
 Text Domain:  textdomain
*/

So now you have a new folder in /wp-content/themes/ which can be called anything you want. It contains style.css and functions.php with all the code from above. You can add a file to this folder which will now help you display the data; we’re going to call it taxonomy-book.php and place it inside the child theme folder.

I would suggest you start by copying all of the code from your current theme’s taxonomy.php file, or if no such file exists in your present theme, look for archive.php. These files will begin with almost everything you’re looking for.

How to get users to this page brings us back to your original problem – the menu. We have the data it will display now, we have the pages its selections will link to – we need the dropdown menu. I like just putting it in the navigation.

In Appearance->Menus, you can now add the taxonomy items to any navigation menu from the WP selection boxes on the left side of the menu builder. If you’d like me to write you a quick little widget instead, I’ll look for your reply.