Загрузить изображение в WordPress и сохранить детали в БД

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

0

Решение

Да, это было бы что-то вроде этого:

<?php
header('Response: HTTP/1.1 200 OK');
define('WP_USE_THEMES', false);
require('../../../../wp-load.php');

$uploadedfile = $_FILES['image'];
if($uploadedfile['size'] > 0){
$upload_overrides = array( 'test_form' => false );
if ( ! function_exists( 'wp_handle_upload' ) ) require_once( ABSPATH . 'wp-admin/includes/file.php' );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ($movefile) {
$wp_filetype = $movefile['type'];
$filename = $movefile['file'];
$wp_upload_dir = wp_upload_dir();
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/' . basename( $filename ),
'post_mime_type' => $wp_filetype,
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $filename);
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 );

die(json_encode(array('type'=>'error', 'text' => 'Ok', 'error' => 0)));
}else{
die(json_encode(array('type'=>'error',  'error' => 1)));
}
}
die(json_encode(array('type'=>'error', 'error' => 2)));
}
?>

Обратите внимание, что я вставил свой код, вам придется немного поработать с ним;)

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector