Создайте пользовательскую вкладку в загрузке медиафайлов WordPress 5

Вопрос или проблема

Может кто-нибудь помочь мне создать пользовательскую вкладку в медиабиблиотеке WordPress. В версии WordPress 4 я использовал функцию media_upload_tabs для создания этой красивой работы. Но сейчас, в версии WordPress 5, функция не работает.

Это изображение медиабиблиотеки WordPress версии 5

Единственный способ, которым я смог заставить это работать в WP 5, – это установить Classic Editor.

Тогда я мог использовать media_view_settings, чтобы добавить вкладку.

add_filter('media_view_settings', 'addMediaTab');

function addMediaTab($settings) {
    $settings['tabs'] = array('mymediatab' => 'Моя медиа вкладка');
    return $settings;
}

НО, похоже, новый интерфейс не включает эти разделы в Gutenberg, в итоге вы получите что-то подобное, если будете использовать Classic Editor.

Новая медиавкладка WP 5

Вы также можете сделать это с помощью JS.

var Library = wp.media.controller.Library;
var oldMediaFrame = wp.media.view.MediaFrame.Post;

wp.media.view.MediaFrame.Post = oldMediaFrame.extend({
    initialize: function () {
        oldMediaFrame.prototype.initialize.apply(this, arguments);
        var options = this.options;
        this.states.add([
            new Library({
                id: 'inserts',
                title: 'Моя новая вкладка',
                priority: 20,
                toolbar: 'main-insert',
                filterable: 'all',
                library: wp.media.query(options.library),
                multiple: false,
                editable: false,
                library: wp.media.query(_.defaults({
                    newtab: 'newtab',
                }, options.library)),
                displaySettings: true,
                displayUserSettings: true
            }),
        ]);
    },
});

Дополнительная информация

Тикет с дополнительной информацией о Media_upload_tabs & WP5

Пример демонстрации JS

.

Ответ или решение

Создание пользовательских вкладок в медиабиблиотеке WordPress 5

WordPress 5 представляет собой значительное обновление в сравнении с предыдущими версиями, что повлияло на работу с медиабиблиотекой и её расширения. Если вы ранее использовали функцию media_upload_tabs в WordPress 4 для создания пользовательских вкладок, в версии 5 вы столкнетесь с некоторыми изменениями. Давайте рассмотрим, как создать пользовательскую вкладку в медиабиблиотеке WordPress 5 пошагово.

1. Использование хуков для настройки медиабиблиотеки

В WordPress 5 вместо media_upload_tabs рекомендуется использовать хук media_view_settings, который позволяет добавлять новые вкладки в интерфейс медиабиблиотеки. Пример кода, который поможет вам достичь этой цели, приведён ниже:

add_filter('media_view_settings', 'addMediaTab');

function addMediaTab($settings) {
    $settings['tabs']['mymediatab'] = 'Моя медиа вкладка';
    return $settings;
}

Этот код добавляет новую вкладку с названием "Моя медиа вкладка" в медиабиблиотеку. Однако следует учесть, что при использовании нового интерфейса Gutenberg такая вкладка может не отображаться так, как вы ожидаете.

2. Настройка пользовательского интерфейса через JavaScript

Если вы хотите интегрировать пользовательскую вкладку в медиабиблиотеку с помощью JavaScript, вам нужно переопределить существующий контроллер библиотеки. Ниже представлен пример кода, который создает новую вкладку через JavaScript:

var Library = wp.media.controller.Library;
var oldMediaFrame = wp.media.view.MediaFrame.Post;

wp.media.view.MediaFrame.Post = oldMediaFrame.extend({
    initialize: function () {
        oldMediaFrame.prototype.initialize.apply(this, arguments);
        var options = this.options;
        this.states.add([
            new Library({
                id: 'inserts',
                title: 'Моя новая вкладка',
                priority: 20,
                toolbar: 'main-insert',
                filterable: 'all',
                library: wp.media.query(options.library),
                multiple: false,
                editable: false,
                library: wp.media.query(_.defaults({
                    newtab: 'newtab',
                }, options.library)),
                displaySettings: true,
                displayUserSettings: true
            }),
        ]);
    },
});

В этом примере создается новый контроллер библиотеки с названием "Моя новая вкладка". Обратите внимание, что для этого кода необходимо подключать JavaScript-файл в админке WordPress.

3. Примечания и рекомендации

  • Совместимость с Gutenberg: Если ваша цель — использование Gutenberg как основного редактора, стоит учитывать, что старые функции, связанные с медиа, могут быть несовместимы. Однако подход с использованием JavaScript позволит вам более гибко настроить интерфейс.

  • Плагины для Classic Editor: Если вы предпочитаетеClassic Editor, вы можете использовать его вместе с вышеприведёнными кодами, чтобы достичь желаемых результатов.

  • Дополнительные ресурсы: Для более глубокого понимания процесса вы можете обратиться к следующим ресурсам:

Создание пользовательских вкладок в медиабиблиотеке WordPress 5 требует понимания как нового интерфейса, так и работы с хуками. С помощью приведенных кодов и рекомендаций вы сможете успешно добавить одну или несколько вкладок, улучшая функционал вашей медиабиблиотеки.

Оцените материал
Добавить комментарий

Капча загружается...