Answers:
您只能删除(通过admin/structure/types/add
)手动创建的内容类型。
没有删除链接的内容类型由安装的模块以编程方式创建,并且在卸载它们后将被删除。
通过转到网址删除它们 /admin/structure/types/manage/content-machine-name/delete
content-machine-name是您要删除的内容类型的机器名称。另外,请确保在计算机名称中使用破折号而不是下划线。
如hpn所述,您只能删除手动创建的内容类型。
但是有时候事情进展并不顺利。以下步骤有助于删除内容类型。您需要先备份数据库,然后再尝试此操作。
[要手动删除已创建的内容类型1#16 Nedjo建议在drupal.org中:
- 禁用该功能。有时我会遇到一些问题-功能不会禁用。在这种情况下,请删除功能模块代码。
- 确定要删除的内容类型的机器名称,例如“ mytype”。
- 在数据库中,将node_type表的值还原为默认值,就好像通过UI手动创建内容类型一样:
mysql> UPDATE node_type SET module = 'node', custom = 1, modified = 1, locked = 0 WHERE type = 'mytype';
- 清除缓存以确保内容类型更改可用。
- 通过位于admin / structure / types的UI,删除内容类型。
在发现这些问题之前,上述步骤对我有帮助。
禁用提供内容类型的模块应该是第一步。如果内容类型是由功能提供的,则仍然需要删除该内容类型。
对于功能完善的功能部件,如果禁用了该内容类型,则可以删除该内容类型。这优于从功能部件下删除内容类型,因为当前功能或对该功能部件的将来更新可能需要该内容类型。
请注意,即使“功能”界面((愚蠢地)声称由于冲突而无法禁用模块)也可以禁用功能模块(管理员/模块)。
而且,如果您不想通过该界面执行任何操作,而只想编写代码,那么下面是一个更新挂钩示例,该挂钩将禁用Commons Wiki和Posts功能,然后删除它们提供的内容类型。
<?php
/**
* Remove unused features and content types.
*/
function example_update_7001() {
// Delete one (spam) piece of wiki content.
node_delete(2731);
// Disable Feature modules.
module_disable(array('commons_wikis_pages', 'commons_wikis', 'commons_posts'));
// Delete content types.
node_type_delete('wiki');
node_type_delete('post');
}
?>