In my WordPress `v5.6`, I am using the below code in Author page to show all current author's posts from a custom `post_type`, **song**.

```
<?php
$author_page_link = esc_url(get_author_posts_url(false, ID->user_nicename));
?>
<a href="' . $author_page_link . '?post_type=song">All Songs</a>

```

The above link will filter all the songs from current author with a URL below:

> 
> `http://www.music.com/author/current_author/?post_type=song`
> 
> 
> 

I want to show both "song" and "poem" custom posts from a author in the filter page.

I have tried below a links, with no luck:

```
<a href="' . $author_page_link . '?post_type=song+poem">All</a>
<a href="' . $author_page_link . '?post_type=song&post_type=poem">All</a>

```

How can I have a link to filter posts from multiple custom posts from a single author?

**Update 1**

I was using the `archive-song.php` template, that's why only the `song` custom posts are showing in the page.

When using the below URL with `?post_type=song+poem`, having `archive.php` only in template hierarchy, URL redirecting to `author.php`.

> 
> `http://www.music.com/author/current_author/?post_type=song+poem`
> 
> 
> 

And if I use the below URL with `?post_type=song&post_type=poem`, having `archive.php` only in template hierarchy, only the last `post_type` results are filtered (can be poem or song, whichever is the last query).

> 
> `http://www.music.com/author/current_author/?post_type=song&post_type=poem`
> 
> 
> 

**Update 2**

This is my author page (<https://pastebin.com/kCrYebcD>).
This page shows only the **latest 10 posts** from the current author of all post types.

This is my archive page (<https://pastebin.com/twkWn5Bc>).
Here I want to show **all the posts** from the author from all the post types.