✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Завантажте файли програмно в WordPress

22

Нещодавно я працював над проектом, де ми хотіли завантажувати зображення в спеціальну папку. Ми не хочемо використовувати стандартну структуру завантажень WordPress, де всі ваші зображення зберігаються у форматі рік-місяць. Натомість ми хотіли створити власну папку всередині каталогу завантажень та зберігати в ній зображення. Це вимагає від мене програми, яка може завантажувати файли через форму 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, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі