it-swarm.com.de

Löschen Sie den doppelten wp_postmeta-Datensatz

Ich habe viele doppelte wp_postmeta-Einträge (ungefähr Hunderte Einträge mit derselben post_id und demselben meta_key) und muss sicher über mysql löschen. Gibt es eine effektive Möglichkeit, den Postmeta-Eintrag zu löschen?.

 wp_postmeta table 

Eine weitere Frage ist, wie eine Codeimplementierung erstellt werden kann, um diese Post-Meta-Duplikation zu verhindern. Danke vielmals :-)

4
Ivan Slaughter

Es ist eine recht komplizierte Gruppenanfrage. Um Probleme zu vermeiden, sollten Sie das Cleanup Duplicate Meta Plugin verwenden.

Der Grund, warum doppelte Einträge auftreten, ist die Verwendung von add_post_meta(). Verwenden Sie einfach update_post_meta() (sogar um Meta zu erstellen, es funktioniert) - und Sie haben immer ein Meta-Feld mit einem bestimmten Namen pro Beitrag.

3
KAGG Design

Versuchen Sie es, um doppelte wp_postmeta-Einträge zu löschen:

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)

Verwenden Sie update_post_meta anstelle von add_post_meta, um zu verhindern, dass doppelte Postmetas erstellt werden.

2
MahdiY