如何在wp Media js中获取自定义帖子元

时间:2019-10-11 17:06:52

标签: wordpress

我有一个自定义帖子类型,在admin编辑帖子屏幕上,我正在使用wp.media将曲目附加到帖子上。而且,我还在该轨道上附加了一些帖子元。
有强制wp.media JS返回带有元数据的跟踪的简单方法吗?

trackMediaUploader = wp.media.frames.file_frame = wp.media( { ... } );

trackMediaUploader.on( 'select', () => {
  const attachment = trackMediaUploader.state().get( 'selection' ).first().toJSON();
  // want to get post meta of this attachment
  console.log( attachment );
});

我尝试使用wp_get_attachment_metadata过滤器,但不适用于wp.media js:

function add_attachment_metadata( $data, $id ) {
    $lyrics = get_post_meta( $id, '_track_lyrics', true );
    if( $lyrics ) {
        $data[ 'track-lyrics' ] = $lyrics;
    }
    return $data;
}

1 个答案:

答案 0 :(得分:0)

您可以使用wp_prepare_attachment_for_js钩子:

add_filter( 'wp_prepare_attachment_for_js', 'prepare_attachment_for_js', 10, 3 );

function prepare_attachment_for_js(  $response, $attachment, $meta ) {
    $response[ 'trackLyrics' ] = get_post_meta( $attachment->ID, '_track_lyrics', true );
    return $response;
}
// in admin js: 
trackMediaUploader = wp.media.frames.file_frame = wp.media( { ... } );

trackMediaUploader.on( 'select', () => {
  const attachment = trackMediaUploader.state().get( 'selection' ).first().toJSON();
  console.log( attachment.trackLyrics );
});