Показать Media Uploader в собственный плагин на Wordpress 3.5

У меня небольшая проблема с Media Uploader в новом WordPress 3.5. Я создал собственный плагин, который загружает картинку. Я использую этот код JS:

<script type="text/javascript">
    var file_frame;

    jQuery('.button-secondary').live('click', function( event ){

        event.preventDefault();

        if ( file_frame ) {
            file_frame.open();
            return;
        }

        file_frame = wp.media.frames.file_frame = wp.media(
            {
                title: 'Select File',
                button: {
                    text: jQuery( this ).data( 'uploader_button_text' )
                },
                multiple: false
            }
        );

        file_frame.on('select', function() {
            attachment = file_frame.state().get('selection').first().toJSON();
            jQuery('#IMGsrc').val(attachment.url);
        });

        file_frame.open();
    });
</script>

Код работает нормально, но, к сожалению, формы кажутся неполными. Когда я выбираю какое-либо изображение, справа от меня не отображаются "Настройки отображения вложений". Я не знаю почему. Я пытаюсь добавить параметры для медиа:

displaySettings: true,
displayUserSettings: true

Но это также не работает.

2 ответа

Есть ли на странице <script type="text/html" id="tmpl-attachment-details">... шаблон в источнике? Если нет, вам нужно вызвать wp_print_media_templates(), чтобы написать стили из wp-includes/media-template.php

Это код, который я использую. Источник: http://mikejolley.com/2012/12/using-the-new-wordpress-3-5-media-uploader-in-plugins/ Кажется, что это работает довольно хорошо, но боковая панель слева отсутствует. (Преднамеренно, но я все равно не хочу).

<?php wp_enqueue_media(); ?>

<script>

function showAddPhotos() {

// Uploading files
var file_frame;

// event.preventDefault();

// If the media frame already exists, reopen it.
if ( file_frame ) {
  file_frame.open();
  return;
}

// Create the media frame.
file_frame = wp.media.frames.file_frame = wp.media({
  title: jQuery( this ).data( 'uploader_title' ),
  button: {
    text: jQuery( this ).data( 'uploader_button_text' ),
  },
  multiple: false  // Set to true to allow multiple files to be selected
});

// When an image is selected, run a callback.
file_frame.on( 'select', function() {
  // We set multiple to false so only get one image from the uploader
  attachment = file_frame.state().get('selection').first().toJSON();

  // Do something with attachment.id and/or attachment.url here
});

// Finally, open the modal
file_frame.open();

}
</script>
Другие вопросы по тегам