How to using custom DB tables

时间:2013-01-30 作者:Luis

我创建了一个新主题。

我的目标之一是使管理员能够将唯一文本(html代码)添加到主题将自动创建的唯一表中(我的意思是类似wp_myhtml).

我的问题是:

如何定义主题只有在管理员第一次激活它时才会创建一个新表(如果表存在-不要再创建。我知道用纯PHP/SQL来创建,但可能有一个使用WordPress创建自定义表的选项)?

如何通过面板冻结此表中的行?只通过网站本身阅读?是否有独特的功能来执行此操作?

我不使用options 函数(add\\u option、update\\u option等),因为html代码可能很长,而LONGTEXT的一个字段无法处理它。

此外,我不使用编辑器(Appearence>editor),因为我在DB中需要它。

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

我将此作为一个答案,尽管它并没有严格回答您提出的问题,但它是实现您所追求的目标的一种手段。

正如我在评论中提到的,您可以使用自定义的帖子类型和帖子元数据来存储这些数据,您不必使用WordPress提供的UI来管理这些数据。

当你register a post type, 您可以设置public 参数到false, 这样,您的帖子类型将不会显示在管理菜单或前端中,完全由您提供UI来管理这些数据。一个例子是内置的导航菜单界面,它在幕后实际上是另一种post类型。

使用post类型将大大有助于提供实现此功能所需的内容,而无需编写大量代码来创建和更新数据。您可以使用wp_insert_post, wp_update_postwp_delete_post 插入/更新/删除模板。post表有一个父字段,可用于分配父模板。帖子可以通过custom fields 您可以使用存储其他数据字段taxonomies 进一步分类或组织数据。

另请注意,关于您的评论:

此外,模板应以不同的方式显示,而不是排序标题的方式。

如果您选择使用内置的post类型UI,您可以根据需要修改列和排序,搜索此网站的自定义管理列,下面有几个问题和示例说明如何执行此操作。您还可以add meta boxes 到后期编辑视图,为其他字段(如html和预览)提供UI。

结束

相关推荐