因为在wordpress中,上传的文件/图像以3种不同的大小存储,从而占用内存。我有一个代码,根据该图像的URL重新调整图像大小。调整大小的代码是:
$img = wp_get_image_editor( $image_url );
if ( ! is_wp_error( $img ) ) {
$img->resize( 200, 200, false );
$filename = $img->generate_filename(
'final',
ABSPATH.'wp-content/uploads',
NULL
);
$img->save($filename);
}
所以我想使用这段代码从用户的本地路径调整图像大小,这样我就不会耗费太多的内存。 谁能告诉我如何获取url上传的文件的本地路径和网址?
答案 0 :(得分:4)
从URL获取图像的本地路径怎么样? :
function ContentUrlToLocalPath($url){
preg_match('/.*(\/wp\-content\/uploads\/\d+\/\d+\/.*)/', $url, $mat);
if(count($mat) > 0) return ABSPATH . $mat[1];
return '';
}
它假定文件位于uploads文件夹中。
答案 1 :(得分:2)
我们可以使用get_attached_file()
根据附件ID检索附件文件路径
尝试:
<?php
get_attached_file( $attachment_id);
?>