✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Faça upload de arquivos programaticamente no WordPress

61

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.phparquivo, 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 $uploadvariá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.phparquivo.

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

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação