web-dev-qa-db-fra.com

Coffre-fort pour supprimer postmeta vierge?

Nous avons beaucoup de champs personnalisés non autorisés. Je pense que nous pouvons libérer un espace important dans la base de données si nous supprimons les valeurs vides. Si j'interroge ma base de données avec les éléments suivants:

select * from wp_postmeta where meta_value = ''

Je reçois 871038 (!)

Ma question est la suivante: est-il prudent de les supprimer? Est-ce que cela pourrait poser des problèmes?

2
psorensen

Vous devriez être en mesure de supprimer les champs personnalisés vides.

La raison principale en est que get_post_meta( $id, 'metakey', true ) renvoie une chaîne vide si le champ n'est pas défini, ce qui revient au même que d'avoir un jeu d'enregistrements vide.

get_post_meta( $id, 'metakey', false ), retourne un tableau vide si aucune valeur n'est définie, donc ça devrait aller aussi.

Le seul problème que vous pouvez rencontrer est d'obtenir toutes les métadonnées en même temps (get_post_meta( $id )), car dans le retour à cet appel, les valeurs vides sont définies, mais elles ne le sont pas s'il n'y a pas d'enregistrement dans la base de données. Cela pourrait causer quelques PHP_WARNINGs, mais ça devrait aller.

4
fischi