Como definir um meta valor padrão para o campo personalizado

Eu configurei uma meta_key personalizada para anexos. Uma vez que é um botão de opção com opções Sim / Não, e o valor padrão é sempre Sim, eu preciso que esse valor padrão seja salvo no db quando o anexo for criado.

Agora, o problema é que quando eu envio uma imagem, a página Editar mídia mostra que o valor dessa meta_key é “Sim”, mas na verdade não é salvo na base de dados até eu clicar em “Salvar todas as alterações” ou “Atualizar mídia”. “.

Uma vez que esses anexos podem ser adicionados ao carregar arquivos manualmente e automaticamente importando um feed RSS, preciso que o valor padrão seja criado no momento em que o anexo for criado no db.

UPDATE: Para explicar o problema com mais detalhes, este é o código que estou usando no modelo para encontrar os anexos. Não sei se posso modificar isso para também consultar os anexos quando o _show_attach é nulo?

$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' => '!=' )); 

Solutions Collecting From Web of "Como definir um meta valor padrão para o campo personalizado"

Por que não cobrir isso em sua consulta e usar isNull() ? Quando sua meta_key é nula para este anexo, é true .

Você pode usar a ação add_attachment para definir um valor padrão para um campo personalizado:

 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' );