Je me demandais simplement quel était le meilleur moyen de sauver Postmeta.
Je ne veux pas que les valeurs postmeta vides encrassent la base de données.
J'avais déjà sauvegardé postmeta dans mon plugin, qui ajoutait des valeurs vides. J'aimerais donc les nettoyer au fur et à mesure que les gens sauvegardent leurs posts.
Des opinions sur le faire comme ça? Améliorations ?:
if ( isset( $_POST[ '_my_meta_key' ] ) && $_POST[ '_my_meta_key' ] !== '' ) {
update_post_meta( $post_id, '_my_meta_key', $_POST[ '_my_meta_key' ] );
} else {
delete_post_meta( $post_id, '_my_meta_key' );
}
Votre approche est bonne, vous devriez exécuter une vérification de base contre les données difficiles. Sinon, vous pourriez obtenir un tableau ou un objet sérialisé… ce qui pourrait avoir des conséquences inattendues (y compris des problèmes de sécurité!) Lorsque vous ou une autre personne essayez d'imprimer les valeurs.
Peut-être que quelque chose comme ceci est plus facile:
$key = '_my_meta_key';
$value = filter_input( INPUT_POST, $key, FILTER_SANITIZE_STRING );
if ( $value )
update_post_meta( $post_id, $key, $value );
else
delete_post_meta( $post_id, $key );
Notez que vous devriez éviter d'écrire la chaîne de clé plusieurs fois. Si vous souhaitez un jour changer son nom, vous devriez avoir le moins d’espaces possible pour le rechercher. Idéalement, un seul dans votre base de code.