X

Listagem de Metabox Personalizado de Todos os Arquivos de Áudio da Biblioteca de Mídia

Snippets por IsItWP

Você está procurando uma maneira de adicionar uma metabox ao menu da sua tela de edição de posts contendo todos os arquivos de áudio? Embora provavelmente exista um plugin para isso, criamos um snippet de código rápido que você pode usar para adicionar uma metabox personalizada listando todos os arquivos de áudio da biblioteca de mídia no WordPress.

Instruções:

Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:

	add_action("admin_init", "audio_init");
	add_action('save_post', 'save_audio_link');

	function audio_init(){
		add_meta_box("mp3-audio", "MP3 AUDIO", "audio_link", "post", "normal", "low");
		}

	function audio_link(){
		global $post;
		$custom  = get_post_custom($post->ID);
		$link    = $custom["link"][0];
		$count   = 0;

		echo '<div class="link_header">';

		$query_audio_args = array(
			'post_type' => 'attachment',
			'post_mime_type' =>'audio',
			'post_status' => 'inherit',
			'posts_per_page' => -1,
			);

		$query_audio = new WP_Query( $query_audio_args );
		$audio = array();

		echo '<select name="link">';
		echo '<option class="audio_select">SELECT AUDIO FILE</option>';
		foreach ( $query_audio->posts as $file) {
		   if($link == $audio[]= $file->guid){
		      echo '<option value="'.$audio[]= $file->guid.'" selected="true">'.$audio[]= $file->guid.'</option>';
			 }else{
		      echo '<option value="'.$audio[]= $file->guid.'">'.$audio[]= $file->guid.'</option>';
			 }
			$count++;
		}
		echo '</select><br /></div>';
		echo '<p>Selecting an audio file from the above list to attach to this post.</p>';
		echo '<div class="audio_count"><span>Files:</span> <b>'.$count.'</b></div>';
	}
	function save_audio_link(){
		global $post;
		if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){ return $post->ID; }
		update_post_meta($post->ID, "link", $_POST["link"]);
	}

	add_action( 'admin_head', 'audio_css' );
	function audio_css() {
		echo '<style type="text/css">
		.audio_select{
			font-weight:bold;
			background:#e5e5e5;
			}
		.audio_count{
			font-size:9px;
			color:#0066ff;
			text-transform:uppercase;
			background:#f3f3f3;
			border-top:solid 1px #e5e5e5;
			padding:6px 6px 6px 12px;
			margin:0px -6px -8px -6px;
			-moz-border-radius:0px 0px 6px 6px;
			-webkit-border-radius:0px 0px 6px 6px;
			border-radius:0px 0px 6px 6px;
			}
		.audio_count span{color:#666;}
			</style>';
	}

	function audio_file_url(){
		global $wp_query;
		$custom = get_post_custom($wp_query->post->ID);
		echo $custom['link'][0];
	}

Adicione este snippet de código para exibir o URL de áudio especificado no seu arquivo de template do WordPress.

<? 
        audio_file_url() 
?>

Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.

Se você gostou deste trecho de código, considere conferir nossos outros artigos no site como: 19 melhores plugins do WordPress para fotógrafos e 30 maneiras de ganhar dinheiro com blogs online.

Comentários   Deixe uma resposta

  1. Michael Wilhelmsen January 25, 2014 at 3:45 pm

    Oi Kevin, você poderia me dizer como consigo o URL para exibir como um shortcode de áudio no meu tema?

  2. Olá,

    Primeiro, isso é brilhante, acho que algo assim deveria fazer parte da funcionalidade principal do WordPress.

    Eu tenho olhado isso para ver se posso usá-lo como guia para algo que estou fazendo. Estou me perguntando se há uma maneira de adaptar isso para mostrar categorias de links em vez de arquivos de mídia? Metaboxes com caixas de seleção e campos eu conheço, mas dropdowns são novidade para mim, e estou brincando com get_terms(link_category) mas está um pouco além de mim como integrá-lo a uma solução como esta.

    Alguma ideia? Se não, tudo bem.

    Obrigado!

    1. Oi Jen,
      O que você está tentando fazer? Se você me enviar um e-mail rápido sobre isso, eu devo ser capaz de ajudá-lo a começar.
      http://wpsnipp.com/index.php/contact/

  3. Muito obrigado! Era exatamente o que eu precisava!

    1. Ei Doug, legal  fico feliz que você gostou do snippet.

  4. Oi, Obrigado pela sua postagem. Tenho uma pergunta: como exibir o nome do arquivo em vez do URL do arquivo. Desculpe pelo meu inglês ruim. Anne

    1. Olá Anne, você notará nas linhas 24 e 26 – $file->guid mude a segunda instância em cada linha ou guid para post_title, por exemplo: $file->post_title

      linha 24
      ———-

      echo ‘guid.'” selected=”true”>’.$audio[]= $file->guid.”;

      para
      echo ‘guid.'” selected=”true”>’.$audio[]= $file->post_title.”;

      linha 26:
      ———–
      echo ‘guid.'”>’.$audio[]= $file->guid.”;

      para
      echo ‘guid.'”>’.$audio[]= $file->post_title.”;

      1. Oi Kevin,
        Muito obrigado pela sua ajuda!
        Anne

        1. Sem problemas, Anne, aproveite os trechos do WordPress.

  5. bem, boas dicas. Existe algum site de exemplo que já usou seu script com sucesso?

    1. É difícil saber porque muitas pessoas gostam deste trecho, mas como é um trecho de administrador, é difícil dizer.

  6. Olá Kevin, tenho um pedido que também pode se relacionar com este artigo. Espero que você possa dar uma olhada e considerar se poderia publicar um artigo sobre ele.

    Meus usuários usam campos personalizados para anexar arquivos como pdf, word, etc. aos seus posts. Seria maravilhoso se eu pudesse facilitar um pouco para os leitores entenderem que este é um arquivo em vez de um link para outros sites, adicionando um ícone à esquerda do título do arquivo automaticamente.
    Por exemplo, um usuário carrega um arquivo pdf e abaixo do conteúdo (front-end) há o título do arquivo e um ícone de pdf ao lado do título. Eu geralmente uso o plugin Custom Field Template.

    Agradeço sua preocupação.

    1. Oi Zeb, você pode fazer esse tipo de coisa com javascript,
      http://cool-javascripts.com/jquery/add-icons-to-your-links-automatically-using-jquery-css.html

      Funciona muito bem. no entanto, vou verificar uma versão atualizada deste trecho também.

      1. Obrigado pela resposta, Kevin.
         
        Como você já afirmou, ele precisa de uma atualização. Ele usa jQuery 1.2.6, que está desatualizado e não tenho certeza se é otimizado para o WordPress e se há problemas de segurança. Seria muita gentileza sua se você pudesse publicar uma atualização para isso.  

        Saudações

        1. Oi Zeb,
          Postarei uma atualização em breve, no entanto, ele não usa jQuery, então isso não deve ser um problema.

Adicionar um comentário

Ficamos felizes que você tenha escolhido deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

Checklist de Lançamento WordPress

O Checklist Definitivo para Lançamento de WordPress

Compilamos todos os itens essenciais da lista de verificação para o lançamento do seu próximo site WordPress em um e-book prático.
Sim, envie-me o eBook Gratuito!