具有相同页面URL的自定义帖子类型

时间:2018-05-25 作者:user1702965

我已经设置了一个带有URL slug“公告”的页面

我还有一个自定义的帖子类型,重写设置为相同的名称:

\'rewrite\' => array(\'slug\' => \'announcements\'),
这一切都很好。

不过,这里有点棘手。在我的公告页面上,我有一个循环,循环后有上一页和下一页链接。

因此,如果我尝试转到第2页,它会查找URL/announcements/page/2/这是一个404。

我猜这与自定义帖子类型的URL冲突。

是否有任何解决方法可以使此功能正常运行,或者我是否一直在更改CPT slug或页面名称?

此外,CPT被设置为没有存档,如果这样做有区别的话。

以下是我的CPT的参数:

$args = array(
        \'label\'                 => __( \'Announcements\', \'textdomain\' ),
        \'description\'           => __( \'Announcements Custom Post Type\', \'textdomain\' ),
        \'labels\'                => $labels,
        \'supports\'              => array( \'title\', \'editor\', \'excerpt\', \'author\', \'thumbnail\', \'comments\', \'revisions\', \'custom-fields\'),
        \'taxonomies\'            => array( \'category\', \'post_tag\' ),
        \'hierarchical\'          => false,
        \'public\'                => true,
        \'show_ui\'               => true,
        \'show_in_menu\'          => true,
        \'menu_position\'         => 4,
        \'show_in_admin_bar\'     => true,
        \'show_in_nav_menus\'     => true,
        \'can_export\'            => true,
        \'has_archive\'           => false,
        \'exclude_from_search\'   => true,
        \'publicly_queryable\'    => true,
        \'menu_icon\'             => \'dashicon-here\',
        \'capability_type\'       => \'post\',
        \'rewrite\' => array(\'slug\' => \'announcements\'),
    );
谢谢

1 个回复
SO网友:rudtek

如果你不允许存档,怎么会有第2页的存档?

这也是为什么你可以在这个url上有一个实际的页面并添加一个循环。。。您正在添加该循环。

如果您将url“公告”更改为其他内容,您仍然会看到cpt的第一页,因为您可能已经添加了自己的自定义循环。

您不应该将您的cpt permalinks重写到您拥有的页面,也不应该使用与您的cpt permalink相同的url创建页面。正如您在本例中看到的,这会导致混淆。

如果打开此cpt的存档,刷新永久链接,您将看到您的内容不再可用。

我建议将页面url的slug更改为其他内容。这就是Wordpress的使用方式。

结束