-
Vadim TsukanovРазработчик
-
Дата публикации28.12.2023
-
КатегорияWordpress
Задача:Загрузить картинку в медиатеку WP через код
Не то, чтобы тяжело, однако просто оставлю этот сниппет тут, так как сталкиваемся с этим очень часто.
require_once( ABSPATH . 'wp-admin/includes/image.php' );
require_once( ABSPATH . 'wp-admin/includes/file.php' );
require_once( ABSPATH . 'wp-admin/includes/media.php' );
if(!empty($_FILES['avatar-photo']['name'])){
$avatarImageId = media_handle_upload('avatar-photo', 0);
carbon_set_user_meta(get_current_user_id(), 'avatar', $avatarImageId);
}else{
carbon_set_user_meta(get_current_user_id(), 'avatar', '');
}
0
— ID поста, к которому будет прикреплен медиафайл. Если не нужно, чтобы файл был прикреплен к посту, то укажите в параметре 0.
Для загрузки изображения по URL используем следующий код:
// когда мы во фронте
require_once ABSPATH . 'wp-admin/includes/media.php';
require_once ABSPATH . 'wp-admin/includes/file.php';
require_once ABSPATH . 'wp-admin/includes/image.php';
$url = 'http://s.w.org/style/images/wp-header-logo.png';
$post_id = 3061;
$desc = "Логотип WordPress";
$img_tag = media_sideload_image( $url, $post_id, $desc );
if( is_wp_error($img_tag) ){
echo $img_tag->get_error_message();
}
else {
// добавлено
}