'attachment', 'post_status' => 'inherit', 'fields' => 'ids', 'meta_query' => array( array( 'value' => $file, 'compare' => 'LIKE', 'key' => '_wp_attachment_metadata', ), ) ); $query = new WP_Query( $query_args ); if ( $query->have_posts() ) { foreach ( $query->posts as $post_id ) { $meta = wp_get_attachment_metadata( $post_id ); $original_file = basename( $meta['file'] ); $cropped_image_files = wp_list_pluck( $meta['sizes'], 'file' ); if ( $original_file === $file || in_array( $file, $cropped_image_files ) ) { $attachment_id = $post_id; break; } } } } return $attachment_id; } public function output() { /** * Open WordPress Media Uploader with PHP and JavaScript * * @link https://rudrastyh.com/wordpress/customizable-media-uploader.html */ echo $this->element_before(); $preview = ''; $value = $this->element_value(); $add = ( ! empty( $this->field['add_title'] ) ) ? $this->field['add_title'] : esc_attr__( '选择图片', 'exopite-sof' ); $hidden = ( empty( $value ) ) ? ' hidden' : ''; $classes = ( isset( $this->field['class'] ) ) ? implode( ' ', explode( ' ', $this->field['class'] ) ) : ''; if ( ! empty( $value ) ) { $attachment = wp_get_attachment_image_src( $this->get_attachment_id( $value ), 'thumbnail' ); $preview = $attachment[0]; } echo '
element_attributes() . '>'; echo '
'; echo '
preview
'; echo '
'; echo ''; echo '' . $add . ''; echo '
'; echo $this->element_after(); } public static function enqueue( $args ) { wp_enqueue_media(); } } }