Intereting Posts
Как сделать изображения доступными для просмотра, чтобы их увеличить, используя лайтбоксы? Проверьте, задана ли переменная в фильтре Переименованная папка плагина, и когда я вернулась, ничего не было активировано Как получить мета значение из всех сообщений Отражать вложенные категории по внешнему виду> меню текущий пункт меню, не добавленный на страницу, показывающий пользовательский тип сообщения (визуализированный с помощью шаблона архива) Показывать пустые таксономии с помощью get_terms () создать в основном только CPT для чтения Есть ли способ отменить старые теги? какой лучший способ включить изображения из папки изображений шаблона? боковая панель боковой страницы архива не работает добавить настраиваемое поле в пользовательский тип сообщения Настройка шаблона основного текста WordPress изменить дизайн captcha в плагин Fast Secure Contact Form Ограничение пользователей для просмотра только загружаемых элементов медиабиблиотеки?

Получить не полный путь

Я разрабатываю плагин, который загружает изображение с FTP-сервера и помещает это изображение в подпапку плагина (например: wp-content/plugins/ftpdownload/download/:id"/image.jpg , где :id – это id, с какого сервера загружается изображение (поддержка нескольких серверов))

С помощью n [ftpimage id='id'] (например, [ftpimage id='id'] ) изображение должно отображаться на странице / должности / виджета.

Я использую этот код

 $server->image = plugin_dir_path(__FILE__) . "download/" . $server->id ."/" .$server->ftp_file; 

чтобы получить путь к изображению, но это не работает, потому что [image] содержит полный путь к изображению, например :\xampp\htdocs\bouwfilm\wp-content\plugins\ftpdownload/download/2/therm.jpg

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

 echo '<img src="' . $server->image . '" />'; 

Solutions Collecting From Web of "Получить не полный путь"

Возможно, вы захотите использовать media_media_sideload_image() . Эта функция будет извлекать изображение из URL-адреса и загружать его для вас. Взгляните на эту настраиваемую функцию:

 function upload_image_from_url($image_url, $post_id, $title) { $img_name = basename ($image_url); global $wpdb; $query = "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_value = '$img_name'"; $id = $wpdb->get_var($query); if (is_numeric($id)) { return $id; } else { $attachment_src = media_sideload_image( $image_url, $post_id, $title,'src' ); $query = "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_value = '$img_name'"; $id = $wpdb->get_var($query); return $id; } } 

Что делает вышеприведенная функция, это поиск в базе данных, чтобы увидеть, загружено ли изображение. Если нет, он загрузит изображение в библиотеку и вернет его идентификатор, который затем можно будет использовать wp_get_attachment_url() чтобы получить URL-адрес.

Вы можете настроить эту функцию, чтобы она не зависела от $post_id или $title (путем отсоединения вложения из сообщения после ее загрузки), чтобы получить то, что вы требуете.

Это безопасно и гарантированно работает (если вы не учитываете чрезвычайные ситуации).