是否允许重复的`_wp_Attach_Image_alt`元键?

时间:2022-02-09 作者:Artem

我的插件中的这一行:

$wpdb->query("ALTER TABLE {$wpdb->prefix}postmeta ADD CONSTRAINT postmeta UNIQUE (post_id,meta_key(100))");
显示以下错误:

[Duplicate entry \'539-_wp_attachment_image_alt\' for key \'postmeta\']
我在数据库中查找该条目,发现有几个条目post_id is 539和meta_key_wp_attachment_image_alt, 以及其他几个具有副本的post_ids和图像高度。

我的问题是:是否重复_wp_attachment_image_alt WordPress中允许使用元键?我正在试图了解这个特定站点上是否存在复制条目的错误,或者这是否是正常行为。

我知道复制的meta_密钥通常可以插入postmeta 我还觉得我不应该添加和依赖post\\u id+meta\\u key唯一键,因为WordPress中允许重复的meta\\u键,对吗?

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

Meta keys are not unique, 根据设计,一篇文章可以有多个具有相同密钥的meta。此外,您不应该在插件中修改WP核心表,这是一种不好的做法,可能会导致WP更新时的数据丢失。

特别是,各种元API有第三个参数:

get_post_meta( int $post_id, string $key = \'\', bool $single = false )
如果$single 设置为false 然后返回所有键/值对的数组。这样,您就可以存储多个值,而无需求助于序列化数组。这也是为什么update_post_metaadd_post_meta 功能。

术语/评论/用户/站点元等也是如此

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在