web-dev-qa-db-fra.com

Comment définir une méta valeur par défaut pour un champ personnalisé

J'ai configuré une méta_key personnalisée pour les pièces jointes. Puisqu'il s'agit d'un bouton radio avec des options Oui/Non et que la valeur par défaut est toujours Oui, j'ai besoin que cette valeur par défaut soit enregistrée dans la base de données lorsque la pièce jointe est créée.

À l’heure actuelle, le problème est que lorsque je télécharge une image, la page Modifier le média me montre que la valeur de cette méta_key est "Oui", mais elle n’est en réalité enregistrée dans la base de données que lorsque je clique sur "Enregistrer toutes les modifications" ou "Mettre à jour le média ".

Étant donné que ces pièces jointes peuvent être ajoutées à la fois en téléchargeant manuellement des fichiers et automatiquement en important un flux RSS, j'ai besoin de la valeur par défaut pour être créée au moment où la pièce jointe est créée dans la base de données.

UPDATE: Pour expliquer le problème plus en détail, il s'agit du code que j'utilise dans le modèle pour rechercher les pièces jointes. Je ne sais pas si je peux modifier cela pour interroger également les pièces jointes lorsque _show_attach est null?

$attached_photos = get_children(array(
        'post_parent'    => get_the_ID(),
        'post_type'      => 'attachment',
        'numberposts'    => -1, // show all
        'post_status'    => null,
        'post_mime_type' => 'image',
        'order' => 'ASC',
        'orderby' => 'menu_order',
        'meta_key' => '_show_attach',
        'meta_value' => 'false',
        'meta_compare' => '!='
    ));
3
ragulka

Vous pouvez utiliser l'action add_attachment pour définir une valeur par défaut pour un champ personnalisé:

function wpse62481_set_default_meta_value( $attachment_id ) {
    add_post_meta( $attachment_id, '_show_attach', '1' );
}
add_action( 'add_attachment', 'wpse62481_set_default_meta_value' );
1
SergeyBiryukov

Pourquoi ne pas couvrir cela dans votre requête et utiliser isNull()? Lorsque votre méta_key est null pour cette pièce jointe, il est true.

1
woony