humanmade / clean-up-leftover-multi-meta
从数据库中删除任何单个元键的多个元值行的重复元值。
0.1.0
2022-09-26 20:45 UTC
Requires (Dev)
- humanmade/coding-standards: ^1.2.1
README
REST API 中存在一个潜在的bug(由 @MiguelAxcarHM 发现,并由 @TimothyBJacobs 和 @kadamwhite 在 WordPress 核心Slack 中讨论),更新元值可能会意外失败,因为与其他元值无关。
我们的工作理论是,当使用 register_meta
或 register_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