wordpress удалить загруженный файл

#php #wordpress

#php #wordpress

Вопрос:

Я создал простой скрипт для загрузки файла в мой плагин WordPress, используя

 wp_handle_upload
  

В базе данных хранится только ссылка на это изображение. Я хотел бы удалить этот загруженный файл, когда я удаляю сообщение, на которое он связан, однако с помощью

 unlink()
  

не работает из-за структуры ссылок, которая выглядит следующим образом:
http://localhost/wp-content/uploads/2016/10/image.jpg

Кто-нибудь знает способ удалить «http: // [ip] /» из path или любой метод WordPress для удаления загруженного файла

Я был бы благодарен за помощь.

Ответ №1:

Вы можете использовать get_home_path(), чтобы получить корневой каталог. Тогда ваш код будет:

 $url = 'http://localhost/wp-content/uploads/2016/10/image.jpg';
$path = parse_url($url, PHP_URL_PATH); // Remove "http://localhost"
$fullPath = get_home_path() . $path;
unlink($fullPath);
  

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

1. Но как удалить http: // [ip]/ из ‘ localhost/wp-content/uploads/2016/10/image.jpg » чтобы получить «wp-content/uploads/2016/10/image.jpg ?

2. Вы можете использовать parse_url($url, PHP_URL_PATH) для этого. Смотрите обновленный ответ.