Faça upload de arquivos programaticamente no WordPress
Recentemente, eu estava trabalhando em um projeto em que queríamos fazer upload de imagens na pasta personalizada. Não queremos usar a estrutura de uploads padrão do WordPress, onde todas as suas imagens são armazenadas no formato ano-mês. Em vez disso, queríamos criar nossa própria pasta dentro do diretório de ‘uploads’ e armazenar imagens nela. Requer que eu escreva um programa que possa carregar arquivos por meio do formulário HTML.
Neste artigo, estudamos como fazer upload de arquivos programaticamente no WordPress. Vou lhe mostrar duas maneiras de realizar essa tarefa. Um é através da função wp_upload_bits() embutida e outro está usando o método move_uploaded_file ().
Faça upload de arquivos programaticamente no WordPress
Para começar, crie um formulário HTML simples com entrada de arquivo e botão de envio. Você pode colocar este formulário em sua página ou postagem.
<h2>Upload a File</h2>
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" required />
<input type="submit" name="upload_file" value="Upload" />
</form>
Carregar arquivo usando wp_upload_bits
Usando a wp_upload_bits()
função, seu arquivo será armazenado dentro do diretório de uploads. Você encontrará seu arquivo dentro da pasta do mês do ano atual (por exemplo, wp-content / uploads / 2020-> 03-> seu_arquivo). Esta função não moverá um arquivo navegado para a pasta de upload. Em vez disso, ele criará um novo arquivo com o conteúdo dos arquivos. O uso deste método é simples. Em seu functions.php
arquivo, adicione o código da seguinte maneira.
<?php
function fn_upload_file() {
if (isset($_POST['upload_file'])) {
$upload = wp_upload_bits($_FILES['file']['name'], null, $_FILES['file']['tmp_name']);
// save into database $upload['url]
}
}
add_action('init', 'fn_upload_file');
Se você imprimir a $upload
variável, obterá um array que contém o diretório e o caminho da URL do arquivo carregado. O usuário pode salvar o caminho da URL no banco de dados usando $upload['url]
.
Carregar arquivo no diretório personalizado
Conforme mencionado acima, usando o wp_upload_bits()
método, seus arquivos serão armazenados usando a hierarquia de pastas padrão do WordPress. Mas e se você quiser armazenar arquivos em seu próprio diretório?
Nesse caso, você precisa criar sua pasta personalizada no diretório ‘uploads’ e mover seu arquivo para essa pasta. Digamos que você queira armazenar seus arquivos dentro do diretório ‘uploads / product-images’. No código a seguir, criaremos o tempo de execução da pasta ‘product-images’ e armazenaremos os arquivos dentro dela. Este código também pode ser escrito no functions.php
arquivo.
function fn_upload_file() {
if (isset($_POST['upload_file'])) {
$upload_dir = wp_upload_dir();
if (! empty( $upload_dir['basedir'])) {
$user_dirname = $upload_dir['basedir'].'/product-images';
if (! file_exists( $user_dirname)) {
wp_mkdir_p( $user_dirname );
}
$filename = wp_unique_filename( $user_dirname, $_FILES['file']['name'] );
move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'/'. $filename);
// save into database $upload_dir['baseurl'].'/product-images/'.$filename;
}
}
}
add_action('init', 'fn_upload_file');
Aqui, estou usando o método wp_unique_filename () que fornece o nome de arquivo exclusivo para o diretório fornecido.
É isso! É tudo sobre como fazer upload de arquivos programaticamente no WordPress. Você está usando algum outro método para uma tarefa semelhante? Por favor, compartilhe na seção de comentários abaixo.
Artigos relacionados
- Como usar o método wp_get_image_editor para redimensionar suas imagens no WordPress
- Como registrar tamanhos de imagem personalizados e redimensionar imagens existentes no WordPress
- Como definir imagens em destaque programaticamente no WordPress