我创建了一个新主题。
我的目标之一是使管理员能够将唯一文本(html代码)添加到主题将自动创建的唯一表中(我的意思是类似wp_myhtml
).
我的问题是:
如何定义主题只有在管理员第一次激活它时才会创建一个新表(如果表存在-不要再创建。我知道用纯PHP/SQL来创建,但可能有一个使用WordPress创建自定义表的选项)?
如何通过面板冻结此表中的行?只通过网站本身阅读?是否有独特的功能来执行此操作?
我不使用options
函数(add\\u option、update\\u option等),因为html代码可能很长,而LONGTEXT的一个字段无法处理它。
此外,我不使用编辑器(Appearence>editor),因为我在DB中需要它。
最合适的回答,由SO网友:Milo 整理而成
我将此作为一个答案,尽管它并没有严格回答您提出的问题,但它是实现您所追求的目标的一种手段。
正如我在评论中提到的,您可以使用自定义的帖子类型和帖子元数据来存储这些数据,您不必使用WordPress提供的UI来管理这些数据。
当你register a post type, 您可以设置public
参数到false
, 这样,您的帖子类型将不会显示在管理菜单或前端中,完全由您提供UI来管理这些数据。一个例子是内置的导航菜单界面,它在幕后实际上是另一种post类型。
使用post类型将大大有助于提供实现此功能所需的内容,而无需编写大量代码来创建和更新数据。您可以使用wp_insert_post
, wp_update_post
和wp_delete_post
插入/更新/删除模板。post表有一个父字段,可用于分配父模板。帖子可以通过custom fields 您可以使用存储其他数据字段taxonomies 进一步分类或组织数据。
另请注意,关于您的评论:
此外,模板应以不同的方式显示,而不是排序标题的方式。
如果您选择使用内置的post类型UI,您可以根据需要修改列和排序,搜索此网站的自定义管理列,下面有几个问题和示例说明如何执行此操作。您还可以add meta boxes 到后期编辑视图,为其他字段(如html和预览)提供UI。