Автоматически заполнять значение настраиваемого поля при публикации/обновлении публикации


Я немного поискал, и у меня возникли проблемы с поиском ответа на этот вопрос. То, что я пытаюсь сделать, - это автоматически заполнять настраиваемое поле при обновлении или публикации записи (настраиваемый тип записи). В идеале завершенный скрипт будет вызывать API и заполнять пользовательское поле результирующей информацией всякий раз, когда создается или обновляется запись. На данный момент, однако, я просто пытаюсь автоматически заполнить свое пользовательское поле простой строкой для тестирования. Вот мой код:

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

Я использовал эту страницу в качестве ссылки: http://www.wpbeginner.com/wp-tutorials/how-to-add-custom-fields-automatically-on-post-publish-in-wordpress/ но, к сожалению, это не работает. Когда я публикую или сохраняю публикацию, настраиваемое поле "Значение рынка" остается пустым (кроме того, я использую Расширенные настраиваемые поля для создания настраиваемых полей). Есть какие-нибудь идеи? Спасибо!

Author: Steve Dimock, 2013-05-27

1 answers

Смотрите add_meta_box, в котором много демонстрационного кода для работы с мета-полями. Вот наиболее важная часть для вас:

/* 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 );
}
 6
Author: Matthew Boynes, 2013-05-28 15:53:16