【发布时间】:2022-10-15 09:43:55
【问题描述】:
我脑子里有个大问题 为什么开发者插件使用 post meta 来保存数据库中的数据? 为什么不使用单独的表格? 我知道,如果你有很多数据,你会将数据保存在单独的表和与数据相关的帖子上,更好地保存在 wp_postmeta 上 还有哪些其他原因可以在 post meta 中存储或不存储数据?
【问题讨论】:
标签: database wordpress plugins post-meta
我脑子里有个大问题 为什么开发者插件使用 post meta 来保存数据库中的数据? 为什么不使用单独的表格? 我知道,如果你有很多数据,你会将数据保存在单独的表和与数据相关的帖子上,更好地保存在 wp_postmeta 上 还有哪些其他原因可以在 post meta 中存储或不存储数据?
【问题讨论】:
标签: database wordpress plugins post-meta
啊,为什么? WordPress 的元表查询速度很慢并且使用起来很混乱。当您使用纯字符串元值存储数字或日期戳时,它们会出现真正的问题,这只是它们令人困惑的一个例子。
它们确实允许开发人员扩展 WordPress 的数据模型以处理许多可以想象的应用程序,而无需额外的表(或者更糟糕的是,将自定义列添加到用户或发布表)。如果不是因为这种可扩展性,我怀疑 2022 年没有人会听说过 WordPress。
但事情就是这样。大多数拥有网站或为 WordPress.org 软件生态系统开发插件(或主题)的人并不精通 SQL 表的设计或开发。许多人更容易依赖元表。
一些插件(例如 Yoast、Relevanssi、WooCommerce)有自己的表格,如果您需要,您的插件也可以拥有它们。
如果您要发布这样的插件,则必须包含代码以在用户首次激活您的插件时创建表,并在她删除您的插件时删除它们。而且您需要仔细测试这些案例,以免您在用户的数据库中留下垃圾。
您必须小心为您的表名使用正确的 $wpdb->prefix(否则您的插件将在多站点安装中崩溃成一堆数字垃圾)。为避免 SQL 注入攻击,您必须使用$wpdb->prepare()。还有其他事情要记住。学习$wpdb 课程。
【讨论】: