2016-11-19 3 views
0

Я зарегистрировал несколько настраиваемых полей, которые будут распечатаны конечной точкой WP REST API v2 для пользовательского типа сообщений. Я могу получить данные для печати для меня, чтобы потреблять в моем приложении, но я хотел бы изменить формат выводимых данных. Я использовал плагин toolset для создания многострочного настраиваемого поля. В этой области я сохранил следующий формат:WP REST API V2 настраиваемое поле преобразует данные в массив

bead, 1, 2 | bead1 3, 14 | bead2, 24, 43

это идет дальше и дальше в течение приблизительно 60 «бусин». Я хочу, чтобы вывести это, хотя:

[{bead: 1, 2}, {bead1: 3, 14}...]

Я создал свой код для вывода в формате, как он выходит из поля:

add_action('rest_api_init', 'register_custom_fields'); 

function register_custom_fields(){ 
    register_rest_field(
    'rosary_prayers', 
    'prayer', 
    array(
     'get_callback' => 'show_fields' 
    ) 
    ); 

    register_rest_field(
    'rosary_prayers', 
    'prayerlist', 
    array(
     'get_callback' => 'show_fields' 
    ) 
    ); 


} 


function show_fields($object, $field_name, $request){ 
    $field_name = 'wpcf-' . $field_name; 
    return get_post_meta($object['id'], $field_name, true); 
} 

Есть ли способ, что я могу «поймать» prayerlist и взорваться и восстановить в формате? Заранее спасибо за любую помощь!

ответ

0

Довольно много деталей дошло до моего решения.

здесь окончательный код, даже если я изменил формат вывода оригинального вопроса:

function show_fields($object, $field_name, $request){ 
    $field_name = 'wpcf-' . $field_name; 
    $value = get_post_meta($object['id'], $field_name, true); 
    if($field_name == 'wpcf-prayerlist'){ 
    $result = array(); 
    $value = str_replace(' ', '', $value); 
    $pieces1 = explode('|', $value); 

    foreach ($pieces1 as $piece1) { 
     // $piece1 = cross, 1, 2 
     $pcs = explode(',', $piece1); 
     $pcss = array ($pcs[0], intval($pcs[1]), intval($pcs[2])); 

     $result[] = $pcss; 
    } 
    $value = $result; 
    } 
    return $value; 
} 

В гов из всего этого является то, что вы «поймать» данные внутри вашей функции show_fields и манипулировать его там на основе на поле, которое вы хотите манипулировать.

Очень мощный материал WordPress! Отличный способ расширить и построить ваш REST API.

Смежные вопросы