Pré-preenchimento de campos personalizados na nova postagem

4

Gostaria de ter um número de campos personalizados adicionados e preenchidos automaticamente (com um valor padrão estático) quando um usuário abre a página "Adicionar nova postagem" no painel de administração para criar uma nova postagem. O objetivo é ter os campos personalizados já definidos com um valor padrão, para que a pessoa que adiciona o artigo possa vê-los e modificar os valores, se necessário.

Eu olhei através dos ganchos, mas não consigo encontrar nenhum adequado. Também não sei como proceder para preencher previamente a seção de campos personalizados no novo formulário de postagem. Alguma idéia?

    
por Alpha_Hydrae 03.09.2015 / 12:19

1 resposta

6

Aqui está uma maneira de ter um campo personalizado , já adicionado e visível, para novas postagens:

/**
 * Preset a custom field for new posts
 *
 * @link http://wordpress.stackexchange.com/a/200554/26350
 */
add_action( 'save_post_post', function( $post_ID, $post, $update )
{
    if( 
            is_a( $post, '\WP_Post' )
        &&  'auto-draft' === $post->post_status
        &&  post_type_supports( $post->post_type, 'custom-fields' ) 
        && '0000-00-00 00:00:00' === $post->post_date_gmt 
        && $post_ID > 0
        && ! $update
    )
        add_post_meta( $post_ID, 'wpse_custom_field', '123' );

}, 10, 3 );

Aqui usamos o gancho save_post_{post-type} .

Veremos isso na tela Adicionar nova postagem :

Como mencionado nos comentários de @Alpha_Hydrae e @MarkKaplun, devemos ser capazes de simplificar isso para:

/**
 * Preset a custom field for new posts
 *
 * @link http://wordpress.stackexchange.com/a/200554/26350
 */
add_action( 'save_post_post', function( $post_ID )
{
    if( 'auto-draft' === get_post_status( $post_ID )
        &&  post_type_supports( get_post_type( $post_ID ), 'custom-fields' ) 
    )
        add_post_meta( $post_ID, 'wpse_custom_field', '123' );
} );
    
por birgire 03.09.2015 / 13:42