J'ai cherché un peu et j'ai du mal à trouver une réponse à cette question. Ce que j'essaie de faire est de remplir automatiquement un champ personnalisé lorsqu'un message (type de message personnalisé) est mis à jour ou publié. Idéalement, le script terminé appellera une API et remplira le champ personnalisé avec les informations obtenues à chaque création ou mise à jour d'un message. Pour le moment, j’essaie simplement de remplir automatiquement mon champ personnalisé avec une simple chaîne de test. Voici mon code:
add_action( 'save_post', 'update_tmv' );
function update_tmv($postid) {
if ( !wp_is_post_revision( $postid ) && get_post_type( $postid ) == 'inventory') {
$field_name = 'market_value';
add_post_meta($postid, $field_name, 'TEST_STRING', true);
}
}
J'ai utilisé cette page comme référence: http://www.wpbeginner.com/wp-tutorials/how-to-add-custom-fields-automatically-on-post-publish-in-wordpress/ but malheureusement ça ne marche pas. Lorsque je publie ou enregistre une publication, le champ personnalisé 'market_value' reste vide (j'utilise également des champs personnalisés avancés pour créer les champs personnalisés). Des idées? Merci!
Voir add_meta_box qui contient beaucoup de code de démonstration pour travailler avec les méta-champs. Voici la partie la plus pertinente pour vous:
/* Do something with the data entered */
add_action( 'save_post', 'myplugin_save_postdata' );
/* When the post is saved, saves our custom data */
function myplugin_save_postdata( $post_id ) {
// First we need to check if the current user is authorised to do this action.
if ( 'page' == $_POST['post_type'] ) {
if ( ! current_user_can( 'edit_page', $post_id ) )
return;
} else {
if ( ! current_user_can( 'edit_post', $post_id ) )
return;
}
$mydata = 'something'; // Do something with $mydata
update_post_meta( $post_id, '_my_meta_value_key', $mydata );
}