Rellenar previamente los campos personalizados en Nueva publicación

4

Me gustaría tener una cantidad de campos personalizados que se agreguen y rellenen automáticamente (con un valor estático predeterminado) cuando un usuario abre la página 'Agregar nueva publicación' en el panel de administración para crear una nueva publicación. El punto es tener los campos personalizados ya establecidos con un valor predeterminado para que la persona que agrega el artículo pueda verlos y modificar los valores si es necesario.

He mirado a través de los ganchos pero no puedo encontrar ninguno adecuado. Tampoco estoy seguro de cómo rellenar previamente la sección de campos personalizados en el nuevo formulario de publicación. ¿Alguna idea?

    
pregunta Alpha_Hydrae 03.09.2015 - 12:19

1 respuesta

6

Esta es una forma de tener un campo personalizado , ya agregado y visible, para las nuevas publicaciones:

/**
 * 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 );

Aquí usamos el save_post_{post-type} hook.

Luego, veremos esto en la pantalla Agregar nueva publicación :

Como se menciona en los comentarios de @Alpha_Hydrae y @MarkKaplun, deberíamos poder simplificar esto 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' );
} );
    
respondido por el birgire 03.09.2015 - 13:42

Lea otras preguntas en las etiquetas