使用WP REST Api使用元术语创建分类

时间:2016-12-28 作者:Alvaro

我正在尝试使用RESTAPI v2从前端创建分类元素(分类已经注册)。我可以这样做,只是无法保存分类法中的元字段。

我有一个注册的分类法(“place”),我正在尝试使用Rest Api为其创建元素。

分类法有一个术语meta(“my\\u meta”)。我能够从分类法中获得信息:

add_action( \'rest_api_init\', \'slug_register_meta\' );
function slug_register_meta() {
    register_rest_field( \'place\',
        \'meta\', 
        array(
            \'get_callback\'    => \'slug_get_meta\',
            \'update_callback\' => null,
            \'schema\'          => null,
        )
    );
}
function slug_get_meta( $object, $field_name, $request ) {
    return get_term_meta( $object[ \'id\' ] );
}
这让我可以在访问时获取信息:/wp json/wp/v2/place/53

{
    "id": 53,
    "count": 0,
    ...
    "taxonomy": "place",
    "meta": {
        "my_meta": [
            "the meta value"
        ]
    },
    ...
}
我可以通过JavaScript注册一个新的分类元素:

var place_new = new wp.api.models.Place({
    name: \'the name\',// works
    description: \'the description\',// works

    my_meta: \'test1\',// doesn\'t work

    fields: {// doesn\'t work
        my_meta: \'test3\'
    },

    meta: {// doesn\'t work
        my_meta: \'test2\'
    }

    });

place_new.save();
The problem is the my_meta value won\'t save, 我不知道如何引用它,也不知道是否缺少一些PHP。

2 个回复
最合适的回答,由SO网友:alexwc_ 整理而成

我想你需要一个update_callback 在里面register_rest_field(). 请注意,我还没有对此进行测试。

add_action( \'rest_api_init\', \'slug_register_meta\' );
function slug_register_meta() {
    register_rest_field( \'place\',
        \'meta\', 
        array(
            \'get_callback\'    => \'slug_get_meta\',
            \'update_callback\' => \'slug_update_meta\',
            \'schema\'          => null,
        )
    );
}
function slug_get_meta( $object, $field_name, $request ) {
    return get_term_meta( $object[ \'id\' ] );
}
function slug_update_meta($value, $object, $field_name){
    // please note: make sure that $object is indeed and object or array
    return update_post_meta($object[\'id\'], $field_name, $value);
}

SO网友:Tunji

您应该将元值作为数组传递给元键。

var place_new = new wp.api.models.Place({
    name: \'the name\',// works
    description: \'the description\',// works

    meta: {
        "my_meta": [
            "new_meta_value"
        ]
    }

});

相关推荐

404 - Taxonomy Archive Page

我正在创建一个Wordpress自定义帖子类型,包括一个分类法,在安装之后,所有的永久链接都被刷新了,但是分类法归档页面不断给我404。CPT归档页面工作得非常好。要创建的代码:add_action( \'init\', \'register_cpt_post_type\' ); function register_cpt_post_type() { register_post_type( \'offers\', array(