【问题标题】:Get multiple post meta with WordPress REST API使用 WordPress REST API 获取多个帖子元
【发布时间】:2017-10-12 14:02:10
【问题描述】:
function my_rest_prepare_post( $data, $post, $request ) {
   $_data = $data->data;
   $_data[$field] = get_post_meta( $post->ID, 'my_custom_field_key', true );
   $data->data = $_data;
   return $data;
}
add_filter( 'rest_prepare_post', 'my_rest_prepare_post', 10, 3 );

上面是我用来在 API 中包含元值的代码。但我想包含多个元,我尝试在my_custom_field_key 中添加不同的元键分隔,但我只显示了第一个键的值。

第二个问题它只显示元值我如何在 JSON 响应中包含键:值?

【问题讨论】:

    标签: php wordpress rest api ionic-framework


    【解决方案1】:

    修改我在这个类似问题中接受的答案,我已经在我的本地站点中测试了工作功能。

    add_action( 'rest_api_init', 'add_custom_fields' );
    function add_custom_fields() {
    register_rest_field(
    'post', 
    'custom_fields', //New Field Name in JSON RESPONSEs
    array(
    'get_callback'    => 'get_custom_fields', // custom function name 
    'update_callback' => null,
    'schema'          => null,
     )
    );
    }
    

    然后定义你的函数来获取自定义字段

    function get_custom_fields( $object, $field_name, $request ) {
    return get_post_meta( $object['id'] );
    }
    

    【讨论】:

      【解决方案2】:

      //returns an array of metadata get_metadata('post', $post->ID)

      https://codex.wordpress.org/Function_Reference/get_metadata

      【讨论】:

      • 你能用 2 个元键编辑上面的代码吗?我试过但不正确的代码会使我的网站因服务器错误而关闭,我必须使用 ftp 进行编辑。如果不是,我应该用 get_metadata 替换 get_post_meta 并添加多个元键。这是正确的 get_metadata('post', $post->ID, $meta_key); $meta_key 是包含所有元键的数组。
      猜你喜欢
      • 2018-04-05
      • 2020-08-28
      • 1970-01-01
      • 2021-04-06
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      相关资源
      最近更新 更多