我的自定义帖子类型仍使用index.php

时间:2018-01-13 作者:Simo Patrek

我注册了一个新的CPT,它确实起作用了,但在处理了一些不同的东西之后,当我刷新页面时,我意识到我的CPT开始使用索引了。php。我认为我的代码一切正常。给你。

function mn_portfolio_post_type_init() {

$labels = array(

    // Labels .

);

$portfolioargs = array(

    \'labels\'                => $labels,
    \'public\'                => true,
    \'has_archive\'           => true,
    \'query_var\'             => true,
    \'publicly_queryable\'    => true,
    \'rewrite\'               => true,
    \'supports\'              => array(
        \'title\',
        \'editor\',
        \'thumbnail\',
        \'author\',
        \'excerpt\',
        \'custom-fields\',
        \'revisions\'
    ),
    \'hierarchical\'          => false,
    \'menu_position\'         => 5,
    \'menu_icon\'             => \'dashicons-media-document\',
    \'capability_type\'       => \'post\'

);

  register_post_type(\'portfolio\', $portfolioargs);

}

add_action(\'init\', \'mn_portfolio_post_type_init\');
之后,我使用了一个新的页面名称。php,一切都很好,但现在我没有办法帮我解决这个问题。

1 个回复
最合适的回答,由SO网友:Cedon 整理而成

您的主题似乎缺少某些关键文件,这些文件是防止WordPress默认设置为index.php 根据WordPress Template Hierarchy.

既然您定义了portfolio 通过设置,可以将post type作为post\'hierarchical\'false, 您可能应该使用post自定义模板文件。

WordPress Theme Template Hierarchy

在从左到右读取图表时,您需要创建一个文件,可能是两个文件,这取决于您是否希望自定义索引视图以及单个后期视图。对于单一视图,WordPress使用single-$posttype.php 哪里$posttype 替换为您提供的自定义帖子类型的slug。在您的情况下,此文件将single-portfolio.php. 存档页的命名约定与archive-$posttype.php 所以你会archive-portfolio.php

页面不支持此操作。有一个你几乎只能使用的页面page-$id.phppage-$slug.php.

结束