我的网站上有一个“关于我们”的页面,其中有一些子页面。我创建了一个“History”自定义帖子类型,其中重写slug是“History”。
我使用archive-cpt\\u历史记录。php作为该CPT的模板文件。一切都按照它的配置工作,我可以去网站。com/history/to see my CPT loop in all it glority(查看我的CPT循环的全部荣耀)。
问题是,我需要这个历史CPT成为一个关于我们的孩子。如何将slug重写为“关于我们/历史”,使其与存档/登录页配合使用?我可以这样做:
\'rewrite\' => array( \'slug\' => \'/about-us/history\', \'with_front\' => false ),
但这只适用于单个帖子,而不适用于存档/登录页。任何帮助都将不胜感激。
此外,如果这是相关的,一旦我解决了这个问题single-cpt\\U history。php只需使用“标题(\'位置:\'。site\\u url(\'\');”将用户重定向回主页。个人历史帖子从来没有任何永久链接。设计就是不是这样的。历史登录页将始终显示CPT中的所有帖子。
最合适的回答,由SO网友:Milo 整理而成
在register post类型参数中,设置rewrite
到true
和has_archive
到存档页所需的路径(不带斜杠):
\'rewrite\' => true,
\'has_archive\' => \'about-us/history\'
至于重定向,您可以提前缩短单个帖子的加载并消除对单个cpt模板的需求,而不是一直到模板:
function wpa_parse_query( $query ){
if( is_singular() && isset( $query->query_vars[\'cpt_history\'] ) ){
wp_redirect( home_url() );
}
}
add_action( \'parse_query\', \'wpa_parse_query\' );