Excluir registro wp_postmeta duplicado

4

Eu tenho muitos registros wp_postmeta duplicados (cerca de centenas de registros com o mesmo post_id & meta_key) e preciso excluir com segurança via mysql, existe alguma maneira eficaz de excluir o registro de postmeta.

Outra questão é como criar uma implementação de código para evitar essa duplicação pós-meta. Muito obrigado: -)

    
por Ivan Slaughter 31.03.2017 / 19:00

2 respostas

3

Isso complica bastante a solicitação agrupada, portanto, para evitar problemas, considere usar o plugin Cleanup Duplicate Meta .

O motivo pelo qual ocorreram entradas duplicadas é o uso de add_post_meta() . Basta usar update_post_meta() (mesmo para criar meta, funciona) - e você terá sempre um meta-campo com determinado nome por postagem.

    
por KAGG Design 31.03.2017 / 20:37
2

Tente excluir o registro wp_postmeta duplicado:

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 em vez de add_post_meta para evitar criar postmeta duplicada.

    
por MahdiY 31.03.2017 / 20:44