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