2014-09-26 8 views
0

Я использую плагин Advance Custom Fields для создания некоторых настраиваемых полей. При создании нового сообщения или сообщения обновления мне нужно использовать api (vimeo), чтобы принимать значения в другое настраиваемое поле.Как взять пользовательское значение поля (плагин ACF) в WordPress save_post?

Пример:

  • -поля: Идентификатор видео
  • -поля: длительность поле
  • 3: игры рассчитывать

Я введите значение в первом поле, нажмите кнопку "Опубликовать" и использовать этот крюк:

add_action('save_post', 'vimeo_api', 10, 2); 
function vimeo_api($post_id, $post) { 
    // request to vimeo with video ID 
    update_post_meta($post_id, 'video-duration', $vimeo_single['body']['duration']); 
    update_post_meta($post_id, 'video-plays', $vimeo_single['body']['stats']['plays']); 
} 

I f Я с жестким кодом vimeo ID - он работает!

Но я не могу получить значение из поля 1.

Например, я могу получить значение заголовка сообщения, как это:

$title = $post->post_type; 

Но это не работает с полем АКФ.

В инструментах разработчика я вижу это в "шапках" на вкладке, форма данных:

_wpnonce:83ab5bcf5f 
_wp_http_referer:/wp-admin/post.php?post=37&action=edit&message=1 
user_ID:1 
action:editpost 
originalaction:editpost 
post_author:1 
post_type:video 
... 
fields[field_5423b0bb92209]: 
fields[field_5423aff492207]:103222207 
fields[field_5423b04192208]: 
fields[field_5424dd92c4f3d]: 

Это возвращение ошибки предупреждение: Illegal строка смещения:

$vimeo_id = $post->fields['field_5423aff492207']; 

ответ

1

решаемые с ACF/save_post крючок

function get_video_info_from_vimeo ($post_id) { 

$vimeo_id = get_field('field_5423aff492207', $post_id); // get id 

// use api and get $duration and $plays 

// unhook this function so it doesn't loop infinitely 
remove_action('acf/save_post', 'get_video_info_from_vimeo'); 

// update ACF Price Field 
update_field('field_5423b04192208', $duration, $post_id); 
update_field('field_5424dd92c4f3d', $plays, $post_id); 

// re-hook this function 
add_action('acf/save_post', 'get_video_info_from_vimeo'); 

} 

add_action('acf/save_post', 'get_video_info_from_vimeo'); 
Смежные вопросы