J'ai beaucoup d'enregistrements wp_postmeta dupliqués (des centaines d'enregistrements avec le même post_id & meta_key) et j'ai besoin de supprimer en toute sécurité via mysql. Existe-t-il un moyen efficace de supprimer l'enregistrement postmeta?.
Une autre question est de savoir comment créer une implémentation de code pour empêcher cette duplication postmeta. Merci beaucoup :-)
Il est assez compliqué demande groupée, afin d'éviter les problèmes, envisagez d'utiliser Cleanup Duplicate Meta plugin.
Les entrées en double sont dues à l'utilisation de add_post_meta()
. Utilisez simplement update_post_meta()
(même pour créer une méta, cela fonctionne) - et vous aurez toujours un méta-champ avec un certain nom par publication.
Essayez-le pour supprimer l'enregistrement wp_postmeta dupliqué:
DELETE FROM `wp_postmeta` WHERE `meta_id` NOT IN (SELECT * FROM (SELECT MAX(`pm`.`meta_id`) FROM `wp_postmeta` pm GROUP BY `pm`.`post_id`, `pm`.`meta_key`) x)
Utilisez update_post_meta
au lieu de add_post_meta
pour empêcher la création de postmeta en double.