Eliminar el registro wp_postmeta duplicado

4

Tengo muchos registros duplicados de wp_postmeta (alrededor de cientos de registros con el mismo post_id & meta_key) y necesito eliminarlos de forma segura a través de mysql, ¿existe alguna forma efectiva de eliminar el registro de postmeta?

Otra pregunta es cómo crear una implementación de código para evitar esta duplicación postmeta. Muchas gracias :-)

    
pregunta Ivan Slaughter 31.03.2017 - 19:00

2 respuestas

3

Es una solicitud agrupada bastante complicada, por lo que para evitar problemas, considere utilizar el Limpiar el complemento Duplicate Meta .

La razón por la que se producen entradas duplicadas es el uso de add_post_meta() . Simplemente use update_post_meta() (incluso para crear meta, funciona), y siempre tendrá un campo de meta con cierto nombre por publicación.

    
respondido por el KAGG Design 31.03.2017 - 20:37
2

Inténtalo para eliminar el registro duplicado de wp_postmeta:

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)

Use update_post_meta en lugar de add_post_meta para evitar crear duplicados postmeta.

    
respondido por el MahdiY 31.03.2017 - 20:44

Lea otras preguntas en las etiquetas