Wordpress 从自定义帖子中删除永久链接但保留存档

Wordpress remove permalink from custom posts but retain archive

我有一个 Wordpress 站点,我在其中跟踪出版物,其中包含一个名为 "publications" 的自定义 post 类型的存档。每个出版物 post 不应该有自己的页面,它只需要出现在存档页面中。现在,当我创建一个名为 "test publication" 的出版物时,会在 www.mysite.com/publications/test-publication 上创建一个页面。我看到了将 post 选项 public 更改为 false 的建议,但我无法访问存档本身它只是重定向到主页。如果除了 public => false 之外我还添加 publicly_queryable => true 然后我可以到达存档页面,但是每个出版物的专用页面再次出现。如果我尝试访问 www.mysite.com/publications/test-publication 但仍允许我访问存档,我需要它给我一个 404。求助,我是不是遗漏了什么明显的东西?

您可以添加模板重定向,以便单数 link 如果访问重定向到存档页面:

add_action( 'template_redirect', 'disable_singular_publications' );

function disable_singular_publications()
{
    if ( ! is_singular( 'publications' ) )
        return;

    wp_redirect( get_post_type_archive_link( 'publications' ), 301 );
    exit;
}

您可以在 functions.php 中添加上述功能,代码未经过测试,因此您可能需要检查是否有拼写错误或语法错误。