WordPress 如何过滤 URL 中的多个自定义 post_type

the*_*ing 0 php url wordpress wordpress-theming custom-wordpress-pages

在我的 WordPress 中v5.6,我在作者页面中使用以下代码来显示自定义歌曲中的所有当前作者post_type帖子

<?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>
Run Code Online (Sandbox Code Playgroud)

上面的链接将过滤当前作者的所有歌曲,其 URL 如下:

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

我想在过滤器页面中显示作者的“歌曲”和“诗歌”自定义帖子。

我尝试过下面的链接,但没有成功:

<a href="' . $author_page_link . '?post_type=song+poem">All</a>
<a href="' . $author_page_link . '?post_type=song&post_type=poem">All</a>
Run Code Online (Sandbox Code Playgroud)

如何获得一个链接来过滤单个作者的多个自定义帖子中的帖子?

更新1

我使用的是archive-song.php模板,这就是为什么song页面中只显示自定义帖子。

当将以下 URL 与 一起使用时?post_type=song+poemarchive.php仅在模板层次结构中,URL 重定向到author.php

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

如果我将以下 URL 与 一起使用?post_type=song&post_type=poem,仅在模板层次结构中,则仅过滤archive.php最后的结果(可以是诗歌或歌曲,以最后一个查询为准)。post_type

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

更新2

这是我的作者页面(https://pastebin.com/kCrYebcD)。此页面仅显示所有帖子类型的当前作者的最新 10 篇帖子。

这是我的存档页面(https://pastebin.com/twkWn5Bc)。在这里,我想显示作者所有帖子类型的所有帖子。

How*_*d E 7

要通过 URL 参数包含多个帖子类型,您需要将其声明为数组。

您的网址应如下所示:

echo '<a href="' . $author_page_link . '?post_type[]=song&post_type[]=poem">All</a>';
Run Code Online (Sandbox Code Playgroud)

这应该对你有用。