jospabloorozcomarn
  • 0
Учитель

Удалить вкладку мультимедиа «С компьютера» для сообщений с существующими вложениями?

  • 0

Как удалить вкладку « С компьютера » и перенаправить на вкладку « Галерея » при редактировании вложений сообщения, хотя бы одно из которых было ранее загружено ?

Вкладки «Добавить изображение»

Это мой текущий код:

add_filter('media_upload_tabs','remove_medialibrary_tabs', 99);
function remove_medialibrary_tabs($tabs) {
    if ($post_id = (isset($_REQUEST['post_id']) ? $_REQUEST['post_id'] : false)) {
        if (count(get_posts("post_type=attachment&post_parent={$post_id}"))>0) {
            // MY QUESTION
        }
    }

    unset($tabs['type_url']);
    unset($tabs['library']);

    return $tabs;
}
Share
  1. Я не понимаю вашего вопроса. Не могли бы вы добавить скриншот и отметить элемент, который хотите удалить?

    • 0
    • Когда вы редактируете какое-либо сообщение, появляется значок для прикрепления изображений или мультимедиа к сообщению. В этом модальном окне мне нужно перенаправить пользователя на вкладку «Галерея» (а не на вкладку «С компьютера»), если в сообщении есть хотя бы одно ранее загруженное вложение.

      • 0
  2. Чтобы удалить заголовок вкладки « С компьютера », вы отключите ключ из этого массива. Однако это (как ни странно) не удалит содержимое вкладки, и, поскольку это вкладка по умолчанию, она будет отображаться, даже если заголовок вкладки для нее исчез.type

    Чтобы изменить вкладку по умолчанию, вы должны подключиться к media_upload_default_tab фильтру. Это вызывается в нескольких местах, я не исследовал, какое из них вызывается при каких обстоятельствах, поэтому я перенес проверку вложений в отдельную функцию и переписал ваш код следующим образом:

    add_filter('media_upload_tabs','wpse13567_media_upload_tabs', 99);
    function wpse13567_media_upload_tabs( $tabs ) {
        if ( wpse13567_post_has_attachments() ) {
            unset( $tabs['type'] );
        }
        unset( $tabs['type_url'] );
        unset( $tabs['library'] );
    
        return $tabs;
    }
    
    add_filter( 'media_upload_default_tab', 'wpse13567_media_upload_default_tab' );
    function wpse13567_media_upload_default_tab( $tab )
    {
        if ( wpse13567_post_has_attachments() ) {
            return 'gallery';
        }
        return $tab;
    }
    
    function wpse13567_post_has_attachments()
    {
        static $post_has_attachments = null;
        if ( null === $post_has_attachments && $post_id = (isset($_REQUEST['post_id']) ? $_REQUEST['post_id'] : false) ) {
            $post_has_attachments = count(get_posts("post_type=attachment&post_parent={$post_id}"))>0;
        }
        return $post_has_attachments;
    }
    
    • 0

Оставить ответ

You must login to add an answer.