Com a função PHP wp_ext2type() você identifica o tipo de um arquivo dado a sua extensão. Veja o exemplo abaixo:

<?php
$arquivo_extensao = 'pdf';

$arquivo_tipo = wp_ext2type( $arquivo_extensao );Code language: PHP (php)

O conteúdo da variável $arquivo_tipo será document.

O mapeamento de todos os tipos de arquivos é feito pela função PHP wp_get_ext_types(), nela você pode ver todos os tipos disponíveis junto com suas respectivas extensões. No momento que este post foi escrito, esses são os tipos existentes:

  1. image
  2. audio
  3. video
  4. document
  5. spreadsheet
  6. interactive
  7. text
  8. archive
  9. code

Para o tipo document, por exemplo, são mapeadas as seguintes extensões de arquivos:

  • doc
  • docx
  • docm
  • dotm
  • odt
  • pages
  • pdf
  • xps
  • oxps
  • rtf
  • wp
  • wpd
  • psd
  • xcf

Como identificar o tipo de um arquivo enviado para o WordPress

Para identificar o tipo de um arquivo que foi enviado para a biblioteca de mídia do WordPress, o primeiro passo é pegar o ID dele, que normalmente é armazenado no campo onde ele foi enviado. Se você, por exemplo, quiser pegar o ID da imagem destacada, você pode usar a função PHP get_post_thumbnail_id().

Para o exemplo abaixo, vou assumir que o ID do arquivo está armazenado em $arquivo_id. Como base estou utilizando o código que fiz da função PHP wp_check_filetype() e destaquei as alterações que fiz.

<?php
$arquivo_url = wp_get_attachment_url( $arquivo_id );

if ( $arquivo_url ) {
	$arquivo_extensao = wp_check_filetype( $arquivo_url );
	if ( isset( $arquivo_extensao['ext'] ) ) {
		$arquivo_extensao_tipo = wp_ext2type( $arquivo_extensao['ext'] );
		if ( $arquivo_extensao_tipo ) {
			echo "O tipo da extensão do arquivo é: {$arquivo_extensao_tipo}";
		} else {
			echo "Tipo de arquivo não encontrado.";
		}
	} else {
		echo "Extensão não encontrado.";
	}
} else {
	echo "Arquivo não encontrado.";
}
Code language: PHP (php)


Comments

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *