我有一个自定义的职位类型所有设置。我希望slug与页面名称相同,因为所有这些CPT都将在该特定页面(/团队成员)上查询。
如果我将自定义Post类型slug设置为页面URL,则该特定页面将不再加载页面模板。它加载一个损坏的帖子模板。
我的自定义帖子类型重写:
$rewrite = array(
\'slug\' => \'team-members\',
\'with_front\' => false,
\'pages\' => false,
\'feeds\' => false,
);
这允许我生成
proper URL 其中:
http://www.example.org/team-members/bob-jones现在的问题是,当我尝试访问该页面时:http://www.example.org/team-members/, 它无法呈现正确的页面模板文件(标题恰当page-team-members.php
). 保存永久链接设置无效。
How can I create the URL slug of my Custom Post Type to not interfere with a page titled the exact same thing?
最合适的回答,由SO网友:Jacob Peattie 整理而成
出现在什么位置http://www.example.org/team-members/ 是您的帖子类型的“帖子类型存档”。这是WordPress自动生成的帖子列表。如果不希望帖子类型具有存档,可以通过设置has_archive
参数为false:
register_post_type( \'post_type_name\', array(
\'has_archive\' => false,
) );
现在,您可以在/团队成员处创建一个没有冲突的页面。
SO网友:Peter HvD
多年来,我发现避免这种冲突的最简单方法是通过在URL中添加额外的步骤将CPT帖子与页面分开。
例如,更改\'slug\' => \'team-members\',
到\'slug\' => \'team-members/member\',
因此您的URL将成为http://www.example.org/team-members/member/bob-jones
当然,这并不理想,我希望URL更干净,但有时你不得不为轻松的生活妥协:-)