I've searched around a bit, and I'm having trouble finding an answer to this question. What I'm trying to do is automatically fill a custom field when a post (custom post type) is updated or published. Ideally the completed script will call out to an API and fill the custom field with the resulting information whenever a post is created or updated. For right now though, I'm just trying to automatically fill my custom field with a simple string for testing. Here's my 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);    

I've used this page as reference: http://www.wpbeginner.com/wp-tutorials/how-to-add-custom-fields-automatically-on-post-publish-in-wordpress/ but unfortunately it's not working. When I publish or save a post the 'market_value' custom field continues to be empty (also, I'm using Advanced Custom Fields to create the custom fields). Any ideas? Thanks!

  • Was the custom field you're trying to manipulate added via Advanced Custom Field plugin?
    – RRikesh
    May 28, 2013 at 5:28

1 Answer 1


See add_meta_box which has a lot of demo code for working with meta fields. Here is the most relevant part for you:

/* 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 ) )
  } else {
    if ( ! current_user_can( 'edit_post', $post_id ) )

  $mydata = 'something'; // Do something with $mydata 

  update_post_meta( $post_id, '_my_meta_value_key', $mydata );
  • Wow! Worked perfectly the first time! I just plugged my values in, and it seems to be working great. Thanks so much, Matthew. May 28, 2013 at 15:50
  • *I'd upvote, but I'm afraid I can't quite do that yet. May 28, 2013 at 15:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.