web-dev-qa-db-ja.com

カスタム投稿タイプに関連付けられているカスタム分類項目のregister_rest_field

カスタム分類法のカスタムメタフィールドに休憩フィールドを登録しようとしています。 Modifying Responses でチュートリアルに従った。このコードは、カスタム投稿タイプの投稿メタデータ用のrestフィールドを追加するのに役立ちましたが、カスタム分類用のrestフィールドを追加するために次のコードを試したところ、うまくいきませんでした。私がやろうとしていることをすることは可能ですか?

add_action( 'rest_api_init', 'register_rest_field_for_custom_taxonomy_location' );

//REGISTER
function register_rest_field_for_custom_taxonomy_location() {
    register_rest_field( 'location',
        'location_code',
        array(
            'get_callback'    => 'location_get_term_meta',
            'update_callback' => 'location_update_term_meta',
            'schema' => null;
        )
    );
}

//WRITE
function location_update_term_meta_field( $value, $object, $field_name ) {
    if ( ! $value || ! is_string( $value ) ) {
        return;
    }
    return update_term_meta( $object->ID, $field_name, $value );
}

//READ
function location_get_term_meta_field( $object, $field_name, $request ) {
    return get_term_meta( $object[ 'id' ], $field_name, true );
}
2
Haimanot

Register_rest_field_for_custom_taxonomy_location()関数の両方のコールバックのスペルが間違っています。

変化する

'get_callback'    => 'location_get_term_meta',
'update_callback' => 'location_update_term_meta',

'get_callback'    => 'location_get_term_meta_field',
'update_callback' => 'location_update_term_meta_field',

登録コード

function register_rest_field_for_custom_taxonomy_location() {
    register_rest_field( 'location',
        'location_code',
        array(
            'get_callback'    => 'location_get_term_meta_field',
            'update_callback' => 'location_update_term_meta_field',
            'schema' => null,
        )
    );
1
friendlyfire