未加载CPT自定义归档模板

时间:2015-09-22 作者:Cyclonecode

我有一个自定义内容类型,名为events 我使用以下函数进行注册:

add_action(\'init\', \'events_post_init\');

function events_post_init() {
   register_post_type( \'events\',
      array(
         \'labels\' => array(
            \'name\' => \'Events\',
            \'singular_name\' => \'Event\',
            \'add_new\' => \'Create new\',
            \'add_new_item\' => \'Create new event\',
            \'all_items\' => \'All events\',
            \'view_item\' => \'View event\',
            \'search_items\' => \'Search events\',
            \'not_found\' => \'No events found\',
            \'not_found_in_trash\' => \'No events found in trash\',
            \'menu_name\' => \'Events\',
        ),
        \'rewrite\' => array(
            array(\'slug\' => \'events\')
        ),
        \'public\' => true,
        \'has_archive\' => true,
        \'show_ui\' => true,
        \'menu_position\' => 6,
        \'supports\' => array(\'thumbnail\', \'editor\', \'title\', \'excerpt\'),
    )
  );
}
现在,我想添加一个页面,用于在访问时显示事件的存档/events/, 因此,我创建了一个名为page-events.php 然后添加了一个名为Event Archive 弹头等于events 及以下Page Attribute 我已经选择了刚创建的新模板
问题是,当我转到指定的url时,模板没有被使用。但是如果我取消对register_post_type() 然后它被加载了?

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

设置has_archivefalse 在注册帖子类型时,在你的参数中刷新你的永久链接,你就可以继续了。

编辑

has_archive

(布尔值或字符串)(可选)启用post类型存档。将使用$post_type 默认情况下作为存档slug。

默认值:false

相关推荐

如何将Page-{slug}.php这样的页面模板文件移到子目录中?

我想移动页面模板文件,如page-{slug}.php 到我的主题中的子目录,WordPress将自动识别它们。如果所述表单的页面模板在子目录中不存在,那么WordPress应该回到默认的模板加载规则。我如何才能做到这一点?Note-1: This 对于页面模板和this 链接提及template-parts/page, 这不是一回事。Note-2: 我有多个page-{slug}.php 像页面模板文件一样,我想将它们移动到子目录中,以获得更整洁的文件组织。