humanmade/clean-up-leftover-multi-meta

从数据库中删除任何单个元键的多个元值行的重复元值。

安装: 197

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:wordpress-plugin

0.1.0 2022-09-26 20:45 UTC

This package is auto-updated.

Last update: 2024-08-27 00:58:20 UTC


README

REST API 中存在一个潜在的bug(由 @MiguelAxcarHM 发现,并由 @TimothyBJacobs 和 @kadamwhite 在 WordPress 核心Slack 中讨论),更新元值可能会意外失败,因为与其他元值无关。

我们的工作理论是,当使用 register_metaregister_post_meta 注册元键时(设置为 'single' => true),但该元键在数据库中仍然有多个行,正如我们预期的那样,如果它以前被用作 'single' => false。例如,

+---------+---------+---------------------------------------------+---------------+
| meta_id | post_id | meta_key                                    | meta_value    |
+---------+---------+---------------------------------------------+---------------+
|    8898 |    5804 | process_owner                               | 333           |
|   11870 |    5804 | process_owner                               | 333           |
|   13868 |    5804 | process_owner                               | 333           |
|   15748 |    5804 | process_owner                               | 333           |
+---------+---------+---------------------------------------------+---------------+

此插件提供了一个CLI命令,可以用于遍历所有帖子类型的帖子,检查该帖子的已注册元,并确定是否有任何注册为 single 的元键在 postmeta 表中有重复的行。然后清理这些重复的元ID。

如果一个元键对于一个帖子有多个行,并且值是 不同的,我们应该保留它们。

示例命令

wp clean-up-leftover-multi-meta --post-type=my-cpt-name --dry-run