- Я хочу вставить изображение из папки плагинов в медиа-библиотеку.(сделайте копию в папке загрузки и вставьте сообщение в базу данных)
- Когда я захожу в админ-панель Wordpress, я хочу видеть файл на вкладке мультимедиа, как и любое другое изображение.
Не думаю, что правильно копирую файл.потому что, если я пропущу URL в своем браузере, он вернется пустым, но если я скачаю тот же файл, мой компьютер будет в порядке с ним.
Вторая проблема - я пропускаю детали в мета-записи этого изображения, а именно массивдля _wp_attachment_metadata
- я не уверен, как сгенерировать это .. или как создать размеры изображения, которые генерирует wordpress для изображения.
код;
$TheImage='Vodacom.jpg';
$TheDir='images/Vodacom.jpg';
$TheImageName='Vodacom';
$image_url = plugins_url( $TheDir, __FILE__ );
$mySanitizedName = strtolower(str_replace(" ","-",$TheImageName));
$uploaddir = wp_upload_dir();
$uploadfile = $uploaddir['path'] . '/' . $TheImage;
$contents= file_get_contents($image_url);
$savefile = fopen($uploadfile, 'w');
fwrite($savefile, $contents);
fclose($savefile);
$New_image_url = $uploaddir['url']. '/' . $TheImage;
$post_data = array(
'post_author' => '1',
'post_name' => $mySanitizedName,
'post_title' => $TheImageName,
'post_content' => '',
'post_excerpt' => '',
'post_status' => 'publish',
'ping_status' => 'closed',
'post_type' => 'attachment',
'post_mime_type' => 'image/jpeg',
'guid' => $New_image_url ,
);
$image_Id = wp_insert_post( $post_data );
update_post_meta( $image_Id, '_wp_attached_file', '2018/12/'.$TheImage );
РЕДАКТИРОВАТЬ:
Я исправил оставшуюся часть вставленного сообщения, я могу видеть большой палец в окне мультимедиа, однако я все еще думаю, что моя копия файла неверна, потому что если ящелкните большим пальцем, и новое окно, открывающее файл изображения, будет пустым.
Итак, мой метод копирования файлов неправильный, может кто-то указать, почему?
новый код добавлен к существующему:
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata( $image_Id, $uploadfile );
$res1= wp_update_attachment_metadata( $image_Id, $attach_data );
показ большого пальца: большой палец
окно при открытии большого пальца: окно