2016-11-19 5 views
0

カスタム投稿タイプのWP REST API v2のエンドポイントで印刷するカスタムフィールドをいくつか登録しました。私は私のアプリで消費するために印刷するデータを得ることができますが、私は出力されるデータのフォーマットを変更したいと思います。私は複数行のカスタムフィールドを作成するためにツールセットプラグインを使用しました。その分野では、私は次の形式を保存: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

かなり詳細が私のソリューションに入りました。それがすべての趣旨は、あなた「キャッチ」というあなたのshow_fields関数内のデータであり、あなたはベースがそれを操作

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

は、ここでは、私は元の質問の出力形式を変更していても、最終的なコードですフィールド上で操作したい。

非常に強力なものWordPress! REST APIを拡張して構築するには最適な方法です。

関連する問題