...
WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Программная загрузка файлов в WordPress

654

Недавно я работал над проектом, в котором мы хотели загрузить изображения в настраиваемую папку. Мы не хотим использовать стандартную структуру загрузки WordPress, в которой все ваши изображения хранятся в формате год-месяц. Вместо этого мы хотели создать нашу собственную папку внутри каталога «uploads» и хранить в ней изображения. Мне нужно написать программу, которая может загружать файлы через HTML-форму.

В этой статье мы изучаем, как программно загружать файлы в WordPress. Я покажу вам два способа выполнения этой задачи. Один использует встроенную функцию wp_upload_bits(), а другой использует метод move_uploaded_file ().

Программная загрузка файлов в WordPress

Для начала создайте простую HTML-форму с вводом файла и кнопкой отправки. Вы можете разместить эту форму на своей странице или в публикации.

<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>

Загрузить файл с помощью wp_upload_bits

Используя wp_upload_bits()функцию, ваш файл будет храниться в каталоге загрузок. Вы найдете свой файл в папке месяца текущего года (например, wp-content / uploads / 2020-> 03-> your_file). Эта функция не перемещает просматриваемый файл в папку загрузки. Вместо этого он создаст новый файл с содержимым файлов. Использовать этот метод просто. Добавьте в свой functions.phpфайл следующий код.

<?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');

Если вы распечатаете $uploadпеременную, вы получите массив, который содержит каталог и URL-путь загруженного файла. Пользователь может сохранить URL-путь в базе данных с помощью $upload['url].

Загрузить файл в настраиваемый каталог

Как упоминалось выше, при использовании wp_upload_bits()метода ваши файлы будут храниться с использованием иерархии папок WordPress по умолчанию. Но что, если вы хотите хранить файлы в своем собственном каталоге?

В этом случае вам необходимо создать собственную папку в каталоге «uploads» и переместить файл в эту папку. Допустим, вы хотите хранить свои файлы в каталоге uploads / product-images. В приведенном ниже коде мы создадим среду выполнения папки product-images и будем хранить в ней файлы. Этот код вы также можете записать в functions.phpфайл.

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');

Здесь я использую метод wp_unique_filename (), который дает уникальное имя файла для данного каталога.

Это оно! Все дело в том, как программно загружать файлы в WordPress. Используете ли вы какой-либо другой метод для подобной задачи? Пожалуйста, поделитесь в разделе комментариев ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее