自定义帖子类型-如何命名文件?

时间:2014-11-27 作者:Marko

我已经有一个自定义的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被禁用时,我找不到任何关于命名文件的明确信息?

1 个回复
最合适的回答,由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\' );

结束

相关推荐