存储Wordpress的自定义数据的最佳做法是什么

时间:2017-02-17 12:25:32

标签: php mysql wordpress

上下文:我需要为网站创建一个包含大量自定义和大量字段(20+)的表单,而不是安装插件并修改它的地狱(或者学习插件的API)我决定编写自己的插件。由于我从头开始这样做,因此必须回答存储数据的问题。

大多数人会建议使用自定义帖子类型和元数据而不是自定义表格,虽然我熟悉自定义帖子类型和分类法等,但我想知道这是否适用于相当于日志的纯数据存储。

表单是一次性使用,我存储的数据将无法在网站的前端访问,只能在WP-admin上“查看”,而且很可能只是一个单页可过滤表。

所以问题是这是否使用自定义帖子类型和元数据,或者我应该创建一个表并使用$ wpdb类,因为这简化了CRUD并且仍然坚持使用“Wordpress方式”做事。 / p>

阅读: This post为自定义表提供了一个很好的理由,特别是因为他们的示例是关于存储私人数据,效率和隐私问题出现了。几年前回答的This question有相反的意见,但用例不同,因为存储的数据是公开展示的。

3 个答案:

答案 0 :(得分:9)

我强烈建议使用单独的表格。 WP表格postmeta通常会填充来自许多不同插件的大量信息,并且通常最终成为最大或最大的表格在数据库中。

除此之外,如果保存在postmeta表中,它将始终部分保存在posts表中,因为这两者需要彼此连接和完成信息。因此,如果您要导出/导入到另一个数据库,则必须参与一个非常不愉快的过程,其中自定义帖子需要与最后一个数据库中的ID相同


此外,如果在单独的表中,数据非常容易访问,并且即使从phpmyadmin也应该易于阅读,如果你只有基本的sql知识,使用$ wpdb类编写可过滤的表应该很容易。

所有这一切都来自于我最近将两个大wordpress网站合并为一个的经验,并将大量信息保存为postmeta ...我真的希望大部分信息保存在自定义表格中,因为它会使我的生活更轻松。

使用元和自定义帖子类型的唯一原因是它更快更容易(至少根据我的经验)。希望这有帮助,我真的很想知道是否还有其他意见。祝你的项目好运!

答案 1 :(得分:2)

有趣的问题!

我通常会使用(如您所述)针对此类案例的自定义帖子类型和分类。这就是我要走的路,我唯一害怕的就是你提到" ..相当于一个日志......"

我很确定你最好使用一个单独的表,只是很难通过postmeta表。最后,如果你知道如何使用$ wpdb类,你应该没问题!

期待其他人的投入

答案 2 :(得分:1)

在大多数情况下,使用带有元数据的自定义帖子类型很容易也很酷,因为它快速完成,你可以使用所有酷炫的wordpress功能。

最好在数据库中使用新表的情况是需要保存大量数据,即访问日志或类似数据。

WooCommerce(来自wordpress人的插件)将产品保存为CPT,并将所有数据保存为元数据。