This example shows how to add a button in WordPress admin that opens the media library. When you select an image, its URL appears in a text box and the image preview shows below.
<?php
// Enqueue media scripts in WordPress theme or plugin
function enqueue_media_scripts() {
wp_enqueue_media();
wp_enqueue_script('media-library-script', get_template_directory_uri() . '/js/media-library.js', array('jquery'), null, true);
}
add_action('admin_enqueue_scripts', 'enqueue_media_scripts');
// media-library.js
jQuery(document).ready(function($) {
$('#upload-button').on('click', function(e) {
e.preventDefault();
var mediaUploader = wp.media({
title: 'Choose Image',
button: { text: 'Select Image' },
multiple: false
});
mediaUploader.on('select', function() {
var attachment = mediaUploader.state().get('selection').first().toJSON();
$('#image-url').val(attachment.url);
$('#image-preview').attr('src', attachment.url).show();
});
mediaUploader.open();
});
});
// HTML part inside admin page
<button id="upload-button">Upload Image</button>
<input type="text" id="image-url" readonly />
<img id="image-preview" style="display:none; max-width: 300px; margin-top: 10px;" alt="Image preview" />