toscho关于在插件中定义CPT的技术原因的回答是正确的,但在我看来,你们中的许多人的问题源于对模板层次结构的误解。几乎,但不完全,您看到的每个模板文件都是可选的。
基本指数除外。php模板文件,主题开发人员可以选择是否要实现特定的模板文件。如果WordPress找不到具有匹配名称的模板文件,它会跳到层次结构中的下一个文件名。如果WordPress找不到任何匹配的模板文件,请索引。将使用php(主题的主页模板文件)。
http://codex.wordpress.org/Template_Hierarchy
WordPress将使用特定的专用文件(如果存在),但最终会返回到另一个文件
index.php
-- 如果没有专用文件。您的主题不必实现任何特殊的处理或补偿插件的CPT。主题可以,但不必。
假设我已启用has_archive
我还需要创造archive-cpt.php
, 对吧编号。archive.php
将使用,如果失败,则index.php
另外:为了显示CPT,我需要创建一个自定义循环,所以我仍然需要创建single-cpt.php
...对吧李>再次,没有。同样的原因。single.php
将使用,如果不使用index.php
.
需要创建这些文件in the theme, 对吧是的,但它们是可选的。你根本不需要它们。
- If I disable the plugin: 我still 必须删除(或隐藏或其他内容)
archive-cpt.php
和single-cpt.php
第页不,你什么都不需要做。将不使用模板。- If I switch Themes: 我仍然需要将这两页添加到新主题中。对吧
错误。模板是可选的。只有在希望为帖子类型定制显示时,才需要它们。当你明白主题和CPT并不像你的问题看起来那样紧密相连时,那么其他一些逻辑应该更有意义。