我想将一些表列添加到wp_terms
桌子使用dbDelta
具有修改的CREATE
-MySQL查询这个?还是我会在长期内遇到问题?更新是否安全?
作为一名数据库新手,我希望有更多经验的人能在这里帮助我。
背景对于我目前正在开发的插件,我需要向分类术语中添加一些元数据。第一件事是排序号,第二件事是术语的类型。两者都用于对前端的帖子进行排序。
在WordPress抄本中我找到了行动挂钩{taxonomy}_add_form_fields
和{taxonomy}_edit_form_fields
为此,不幸的是,这些将元数据保存在wp_options
表作为序列化数组。也许可以使用WHERE REGEXP
语法来查询正确的选项,但这似乎很慢而且有点粗糙。
性能在项目中很重要(分配给大量分类术语的大量帖子),因此我正在寻找一种直接在数据库层对结果集进行排序和排序的方法。
提前谢谢阿曼
最合适的回答,由SO网友:s_ha_dum 整理而成
dbDelta
是松鼠。有些事情会改变,有些事情不会。例如,如果我没记错的话,可以向表中添加索引,但不能更改或删除这些索引。我真的不知道它是否会删除表列。(我猜不会,但我可能稍后再测试。)
尽管如此,我不会做像向核心表中添加数据列那样重要的事情。即使dbDelta
如果不考虑这些列,WordPress可能(请-请-请)最终会采用更灵活的数据库工具,这可能会删除您的列。不要这样做。
如果无法使用选项表、Posteta表或其他表,请为分类创建自己的元表。WordPress和dbDelta
就不用管它了。当然,您必须处理SQL才能检索到该数据,但无论如何,您都必须这样做。