Wordpress Media Manager - limite para um tipo mime específico

4

Estou trabalhando em um CPT no qual preciso adicionar alguns meta-campos com os quais o usuário pode anexar mídia. Existe uma condição para anexar qualquer anexo do tipo MIME ao único post.

Eu criei dois metades campos, 1) tipo de anexo e 2) anexo. No tipo de anexo, o usuário pode selecionar tipos de anexos, como documento, pdf, áudio, vídeo ou imagem. E, no segundo campo, o usuário pode selecionar a mídia do gerenciador de mídia.

Agora, estou enfrentando problema de que algum usuário do tempo esteja selecionando um tipo diferente de mídia do que o tipo de anexo selecionado. Tipo, ele é selecionado como o tipo de anexo Vídeo e anexado o arquivo de imagem ou áudio com a postagem.

Como posso limitar o Media Manager a um tipo específico de mime? Como se o usuário estivesse selecionado o áudio, o Media Manager exibirá apenas os arquivos de áudio. Ou, se o usuário estiver selecionado, a imagem exibirá as imagens apenas no Media Manager.

    
por cyberwani 23.05.2013 / 11:30

3 respostas

3

Esta não é uma solução completa, é apenas uma direção para você trabalhar com o media uploader

Primeiramente, você precisa saber como implementar o Media Uploader no seu plugin / tema. Você pode aprender isso a partir do arquivo: wp-admin/js/custom-background.js , que é usado pelo WP para uma página de fundo personalizada.

Se isso é muito difícil de entender, então leia este tutorial , explica cada linha de código para você.

Em segundo lugar, quando você implementa o Media Uploader, sabe que há um objeto de opção para o quadro de mídia. Esse objeto contém uma lista de muitas opções, que não são documentadas. Podemos vê-los apenas visualizando o arquivo wp-includes/js/media-views.js .

Para sua necessidade, você precisa passar uma opção type para library , algo assim:

// Create a frame only if needed
if ( !frame )
{
    var frameOptions = ( {
        className   : 'media-frame rwmb-file-frame',
        multiple    : true,
        title       : 'Select files'
    } );

    if ( mimeType )
    {
        frameOptions.library = {
            type : mimeType
        };
    }

    frame = wp.media( frameOptions );
}

// Open media uploader
frame.open();

// Remove all attached 'select' event
frame.off( 'select' );

// Handle selection
frame.on( 'select', function() {... } );

Há uma variável no código: mimeType , e você precisa passar valor para ela usando jQuery quando o usuário escolher um tipo do seu primeiro campo de entrada.

    
por Anh Tran 29.05.2013 / 04:38
0

Como você deseja limitar seu usuário a ver o arquivo de mídia com base no meta personalizado do tipo de anexo.

1.Para obter meta meta

get_post_meta($post->ID,'attachment-type',true)

2. Para Alterar o padrão vista da biblioteca de mídia código da unidade usando attacment -type post meta

    
por Ravinder Kumar 23.05.2013 / 15:41
0

$post->ID refere-se ao anexo atual. Anexos, posts, páginas, menus, são todos considerados "posts" pelo wordpress.

$type = get_post_mime_type($post->ID);

    if ( $type == "image/jpeg" or $type == "image/gif" or $type == "image/png")
    {
     echo 'This attachment is a '.$type.' attachment.';
    }    

Não é exatamente uma resposta para o problema geral, mas isso demonstra como você pode obter o tipo mime de um anexo ou "postar" pelo menos usando o php.

para fazer isso com jquery, talvez:

Se você tem um link pré-renderizado disponível, você pode usar o jquery para encontrar a extensão do arquivo localizada no final do link e você condicional com base nisso.

    
por Vigs 09.07.2013 / 15:13

Tags