Completar automáticamente el valor del campo personalizado en la publicación / actualización posterior

2

He buscado un poco por todas partes y tengo problemas para encontrar una respuesta a esta pregunta. Lo que estoy tratando de hacer es llenar automáticamente un campo personalizado cuando se actualiza o publica una publicación (tipo de publicación personalizada). Idealmente, la secuencia de comandos completada llamará a una API y llenará el campo personalizado con la información resultante cada vez que se cree o actualice una publicación. Por ahora, sin embargo, solo estoy tratando de llenar automáticamente mi campo personalizado con una cadena simple para probar. Aquí está mi código:

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);    
    }
}

He usado esta página como referencia: enlace pero desafortunadamente no está funcionando. Cuando publico o guardo una publicación, el campo personalizado 'market_value' continúa vacío (también, estoy usando Campos personalizados avanzados para crear los campos personalizados). ¿Algunas ideas? Gracias!

    
pregunta Steve Dimock 27.05.2013 - 23:19

1 respuesta

4

Vea add_meta_box que tiene muchos códigos de demostración para trabajar con campos de metadatos. Aquí está la parte más relevante para usted:

/* 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 );
}
    
respondido por el Matthew Boynes 27.05.2013 - 23:42