Supprimer l'enregistrement wp_postmeta dupliqué

4

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: -)

    
posée Ivan Slaughter 31.03.2017 - 19:00

2 réponses

3

Il s’agit d’une requête groupée assez complexe, aussi, pour éviter les problèmes, envisagez d’utiliser le plug-in Nettoyer les méta en double .

La raison pour laquelle des entrées en double sont générées est 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 message.

    
réponse donnée KAGG Design 31.03.2017 - 20:37
2

Essayez de 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.

    
réponse donnée MahdiY 31.03.2017 - 20:44

Lire d'autres questions sur les étiquettes