Wordpress 如何在wp-media-js中获取自定义post-meta

Wordpress 如何在wp-media-js中获取自定义post-meta,wordpress,Wordpress,我有一个自定义的帖子类型,在管理员编辑帖子屏幕上,我使用wp.media将曲目附加到帖子上。我还在这首歌上贴了一些贴子。 有没有简单的方法强制wp.media JS返回元数据跟踪 trackMediaUploader = wp.media.frames.file_frame = wp.media( { ... } ); trackMediaUploader.on( 'select', () => { const attachment = trackMediaUploader.stat

我有一个自定义的帖子类型,在管理员编辑帖子屏幕上,我使用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\u get\u attachment\u 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;
}
您可以使用钩子:

您可以使用钩子:

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