Загрузка файла интерфейса WordPress

#php #wordpress #file #upload

#php #wordpress #файл #загрузка

Вопрос:

для веб-сайта WordPress я хочу создать форму с кнопкой загрузки файла. Я новичок в WordPress и php и просто хочу поэкспериментировать с ним.

Я искал в Интернете и просматривал документацию, кажется, ясно, что вам нужно делать, но не там, где вам нужно это делать. Также бесплатные плагины не помогают, поскольку они позволяют загружать изображения только в папку медиа-библиотеки от имени администратора.

Я попытался добавить блок на страницу с пользовательским html и php в нем просто для тестирования, но я получил ошибки, и это не похоже на правильный путь.

Теперь я пытаюсь добавить код php в functions.php и в браузере я вижу, что есть запрос post, но я все еще не вижу загруженное изображение на сервере.

Это мой код в functions.php

 $upload_dir = '/var/www/html/wp-content/uploads/2020/11/';

if (isset($_POST['ImageToUpload']) amp;amp; !empty($_FILES)){
    $name = basename($_FILES["pictures"]["name"]);
    $tmp_name = $_FILES["pictures"]["tmp_name"];
    move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
 

Ответ №1:

Создайте шаблон страницы для создания формы и переместите туда свой код.
Вам также необходимо использовать обработчик действия формы, чтобы он совпадал со страницей.

Для первого рендеринга шаблон страницы отобразит форму, а когда форма будет отправлена, та же страница обработает форму.

 <?php

  // Form is Submitted
  if (isset($_POST['ImageToUpload']) amp;amp; !empty($_FILES)){
    .... rest of the code to process the form 

?>
// Render the form when it is GET Request
<form action="<?php the_permalink(); ?>" id="ImageToUpload" method="post">
<label for="name">Name:</label>

<input type="text" name="name" id="name" value='' />
</form>
 

Комментарии:

1. Куда будет загружен файл?