创建帖子类型
register_post_type
是你的朋友在这里。这就是插件etc用来注册post类型的内容。
例如,这里有一个基本的图书帖子类型:
function codex_custom_init() {
$args = array(
\'public\' => true,
\'label\' => \'Books\'
);
register_post_type( \'book\', $args );
}
add_action( \'init\', \'codex_custom_init\' );
如果你不想写代码,有一个网站会给你一个表单,回答一些问题,并在最后给你代码进行复制粘贴,这里有两个这样的网站:
add_action( \'init\', \'create_book_tax\' );
function create_book_tax() {
register_taxonomy(
\'genre\',
\'book\',
array(
\'label\' => __( \'Genre\' ),
\'rewrite\' => array( \'slug\' => \'genre\' ),
\'hierarchical\' => true,
)
);
}
您的两个分类法将相同,除了:
标签将是分层的,类别将不会有不同的名称和标签。您需要分别命名它们,这样它们就不会与现有的帖子类型和分类法冲突,所以新闻类别,而不是类别,新闻标签,而不是标签。
具有易于填写表单的网站也有分类生成器。
帖子列表中的列
v3。5将此属性添加到
register_taxonomy
:
show_admin_column
如果设置为true,它将根据需要添加一列,显示每篇文章的条款
代码应该驻留在哪里可能在插件中,而不是在主题中。如果他们在主题中,而用户切换了主题,他们就会丢失所有数据。
注意事项
自定义帖子类型没有日期存档,添加日期存档是一件不平凡且困难的事情,如果你在问你所问的问题,这远远超出了你目前的技能。在自定义帖子类型中需要日期存档通常意味着您正在做一些本应使用普通帖子的事情,并且在设计中的某个地方犯了错误。
还有一个帖子类型/分类前缀,你不能给他们与帖子完全相同的URL结构。如果你这样做了,它们会发生冲突,你的新闻帖子类型或标准帖子都会是404。(如果你这样做了,我建议你只使用帖子,你甚至有一个单独的新闻帖子类型,这都是不对的)。
编写完代码后,刷新永久链接以测试归档文件将提供的404。
我想你真正想要的是如何在管理菜单和前端菜单中隐藏帖子。为此,我提出了以下替代解决方案:
将帖子重命名为新闻而不创建全新的帖子类型使用自定义分类法或类别将新闻与其他内容区分开来