如何正确地将表添加到WordPress MySQL数据库

时间:2014-05-13 作者:Tsahi Levent-Levi

我想向Wordpress数据库添加一个新表。我需要为我的Wordpress网站的一个特定部分提供这个,这需要一些不同于我通过自定义帖子所能实现的东西。

正确的做法是什么?仅仅添加一个我自己的表就足够了吗?或者我需要在PHP代码中做些什么来让Wordpress知道它?

这会以任何方式影响Wordpress升级过程吗?

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

Firstly I would try to avoid the use of a custom table using custom post types, custom taxonomies and post/user/term meta. 这将大大提高兼容性,并为您提供大量免费功能,如UI、导入/导出支持、归档、REST API等

但假设你不能使用它,无论出于何种原因,你应该:

尽可能在表名称中使用数据库前缀。除了一致性之外,有些人使用一个数据库进行多个安装,如果始终使用相同的表名,这种情况将失败dbDelta 创建和更新表。此函数的语法和输入非常严格,因此请严格按照说明操作。通过wpdb 询问但不要wpdb 对象进行查询。有全局wpdb对象,但如果需要使用其他用户/过程或连接到远程服务器,则可以创建自己的对象。很多人会使用mysql_connect 等等,如果出于任何原因dbDeltawpdb 不会切割(罕见),使用PDO/mysqli 或ORM库。这是非常不可能的,也是不可能的

  • 如果您试图添加一种新形式的meta(例如term meta),那么已经有了映射到meta API中的预期表名,您可以使用这些表名

    For more information see the codex

  • SO网友:s_ha_dum

    传统的观点是,应该避免创建表,而是使用现有的“meta”和“option”表,以及自定义的帖子类型和分类法。这种说法有一些根据。几年前,定制表更为常见,它们造成了一点混乱,因为插件往往从不清理它们。使用核心表和其他功能(CPT等)可以大大减少这个问题。另一方面,虽然我广泛使用它们,但定制的帖子类型(例如)并不适合所有数据。有些东西就是挤不进那个盒子,或者核心提供的任何其他盒子。

    WordPress在一般情况下和更新期间都会将您的表格单独保留

  • 您不需要让WordPress“意识到”表本身,但无论您是通过$wpdb-> 方法正在挂接到WP_Query钩状物posts_where.function for managing the creation and the updating of the table, 但它是非常挑剔和有限的
  • 结束

    相关推荐

    Database create or redirect

    我在ABC网站工作。com,我只能访问根文件夹。我计划安装wordpress。我需要以某种方式创建一个没有任何cPanel的数据库。或者,我想到的第二个选择是,如果我可以在服务器A中安装wordpress,在那里我只能访问根文件夹,并使用另一台服务器B中的数据库,我可以通过cPanel完全控制该数据库。我已经在服务器B上创建了一个数据库。但是如何设置它(可能通过wp config.php),以便可以通过域访问它。第三种选择是,如果我可以在服务器B上创建一个站点(DEF.com),那么服务器a上的站点域(A