Pré-remplissage des champs personnalisés dans le nouveau message

4

J'aimerais qu'un certain nombre de champs personnalisés soient automatiquement ajoutés et pré-remplis (avec une valeur statique par défaut) lorsqu'un utilisateur ouvre la page "Ajouter un nouveau message" dans le panneau d'administration pour créer un nouveau message. Le fait est que les champs personnalisés soient déjà définis avec une valeur par défaut pour que la personne qui ajoute l'article puisse les voir et modifier les valeurs si nécessaire.

J'ai regardé à travers les crochets mais je ne trouve pas celui qui convient. Je ne sais pas non plus comment procéder pour pré-renseigner la section des champs personnalisés du nouveau formulaire de publication. Des idées?

    
posée Alpha_Hydrae 03.09.2015 - 12:19

1 réponse

6

Voici un moyen d'avoir un champ personnalisé , déjà ajouté et visible, pour les nouvelles publications:

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

Nous utilisons ici le crochet save_post_{post-type} .

Nous verrons ensuite ceci sur l'écran Ajouter un nouveau message :

Comme mentionné dans les commentaires de @Alpha_Hydrae et @MarkKaplun, nous devrions pouvoir simplifier ceci pour:

/**
 * 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' );
} );
    
réponse donnée birgire 03.09.2015 - 13:42

Lire d'autres questions sur les étiquettes