我已经有一个自定义的post类型可以很好地工作,只是我想隐藏单个数据视图。例如www.domain。com/kalendarradova是一个要做的事情列表,但我不想要www.domain。com/kalendar radova/清洗盘子,使其可见。
当前文件名为archive-kalendar\\u radova。php
我的论点如下
$args = array(
\'labels\' => array(
\'name\' => \'Kalendar radova\',
),
\'query_var\' => \'radovi\',
\'rewrite\' => array( \'slug\' => \'kalendar-radova\' ),
\'public\' => true,
\'has_archive\' => true,
\'query_var\' => true,
\'menu_position\' => 9,
\'supports\' => array(\'title\', \'excerpt\')
);
register_post_type(\'kalendar_radova\', $args);
看看我看到的文档“has_archive”。如果我将其设置为false,wordpress会显示空白页,我注意到它想要获取索引。php(对于wordpress来说,这是一个万不得已的文件)
当has\\u archive被禁用时,我找不到任何关于命名文件的明确信息?
最合适的回答,由SO网友:tfrommen 整理而成
如果我理解正确,您所要做的就是添加\'publicly_queryable\' => FALSE,
到您的arguments 大堆
以及个人archive template 文件将是archive-kalendar_radova.php
, 没错。
// Edit
为了将CPT的单个视图重定向到相应的存档,请将以下内容放到functions.php
文件:
function wpdev_169737_redirect_single_cpt_to_archive() {
$post_type = \'your-cpt-here\';
if ( is_singular( $post_type ) ) {
wp_safe_redirect( get_post_type_archive_link( $post_type ) );
exit();
}
}
add_action( \'template_redirect\', \'wpdev_169737_redirect_single_cpt_to_archive\' );