scottb
  • 0
Гуру

Как сделать так, чтобы изображение, переданное через FTP или скрипт, отображалось в Media Manager?

  • 0

У меня есть плагин, который передает некоторые файлы в папку загрузки сайта, на котором установлен плагин.

Он работает нормально, однако изображения не отображаются в медиаменеджере. Я ожидаю, что будет задействована некоторая регистрация базы данных.

Учитывая приведенный ниже сценарий, который копирует файлы в каталог, какую команду мне нужно добавить в цикл, чтобы зарегистрировать каждое изображение для медиа-менеджера?

    foreach(new RecursiveIteratorIterator($rdi) as $files) 
    {
         if ($files->isFile()) 
         {
            $imagepath = $files->getRealPath();
            $image = basename($files->getPathname());
            copy($imagepath, $my_target_folder.'/'.$image);
         }
    }
Share
  1. добавьте это к каждому файлу и $filename к каждому файлу,

     $wp_filetype = wp_check_filetype(basename($filename), null );
      $attachment = array(
         'post_mime_type' => $wp_filetype['type'],
         'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
         'post_content' => '',
         'post_status' => 'inherit'
      );
      $attach_id = wp_insert_attachment( $attachment, $filename, 0 );
      // you must first include the image.php file
      // for the function wp_generate_attachment_metadata() to work
      require_once(ABSPATH . "wp-admin" . '/includes/image.php');
      $attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
      wp_update_attachment_metadata( $attach_id,  $attach_data );
    
    • 0
  2. Вы смотрели на функцию media_handle_sideload() ? Кажется, это то, что вы ищете.

    По сути, он работает так же, как media_handle_upload(), но берет файл, который уже находится на локальном сервере, перемещает его в текущий каталог загрузки и генерирует пост-запись, необходимую для его добавления в медиа-менеджер.

    • 0

Оставить ответ

You must login to add an answer.