CPT和页面共享相同的基础永久链接

时间:2017-05-01 作者:Emil Østervig

我在当前的WP项目中遇到了一些url结构问题。

我有一个cpt和一个具有相同名称和URL结构的页面。这显然会产生som问题。由于我从未真正使用过post vs pages的permalink结构,我想了解一下我有哪些选择。

我有一个叫做“ansatte”的页面,还有一个叫做“bliv frivillig”的子页面。

同时,我有一个名为ansatte的自定义帖子类型,其基本url也是“ansatte”。

因此,当我尝试访问“bliv frivillig”儿童页面时,我收到了404,因为WP正在寻找该帖子。

我的梦想是让pages和cpt分享“ansatte”的基本片段。这在WP中可能吗?

以下是我在函数中的CPT参数:

$rewrite = array(
    \'slug\'                  => \'ansatte\',
    \'with_front\'            => true,
    \'pages\'                 => false,
    \'feeds\'                 => false,
);
$args = array(
    \'label\'                 => __( \'Ansat\', \'mydomain\' ),
    \'description\'           => __( \'Ansatte og tilknyttede til Museer\', \'mydomain\' ),
    \'labels\'                => $labels,
    \'supports\'              => array( \'title\', \'editor\', \'thumbnail\', ),
    \'hierarchical\'          => false,
    \'public\'                => true,
    \'show_ui\'               => true,
    \'show_in_menu\'          => true,
    \'menu_position\'         => 35,
    \'menu_icon\'             => \'dashicons-groups\',
    \'show_in_admin_bar\'     => true,
    \'show_in_nav_menus\'     => true,
    \'can_export\'            => true,
    \'has_archive\'           => false,        
    \'exclude_from_search\'   => true,
    //\'with_front\'            => false,
    \'publicly_queryable\'    => true,
    \'capability_type\'       => \'page\',
);
编辑:

自定义帖子类型“ansatte”实际上不需要有单个帖子页面,因为它只在自定义查询中被阻止。

我意识到我可以将public=>false、public\\u queryable=>false和with\\u front=>false设置为false,所以现在至少帖子不会显示在前端。但当我尝试访问子页面“bliv frivillig”时(http://domain.com/ansatte/bliv-frivillig) 我被重定向到frontpage。

1 个回复
SO网友:Alok Shrestha

不,这是不可能的。这背后的原因是,具有与cpt slug相同的父slug的子页面将表现为cpt帖子,wp将搜索该帖子,而不是查找具有相同父slug的子页面。如果您尝试使用父页面,它将替换为cpt存档页面。这基于模板层次结构以及WordPress如何处理cpt、帖子和页面的url。

相关推荐