如何在wordpress中获取文件的本地路径

win*_*ush 6 php wordpress

因为在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);
}
Run Code Online (Sandbox Code Playgroud)

所以我想使用这段代码从用户的本地路径调整图像大小,这样我就不会耗费太多的内存.谁能告诉我如何获取url上传的文件的本地路径和URL?

Din*_*esh 6

我们可以用于get_attached_file()根据附件 ID 检索附加文件路径

尝试:

<?php 
get_attached_file( $attachment_id); 
?>
Run Code Online (Sandbox Code Playgroud)


NoO*_*One 6

从 URL 获取图像的本地路径如何?:

function ContentUrlToLocalPath($url){
    preg_match('/.*(\/wp\-content\/uploads\/\d+\/\d+\/.*)/', $url, $mat);
    if(count($mat) > 0) return ABSPATH . $mat[1];
    return '';
}
Run Code Online (Sandbox Code Playgroud)

它假定文件位于上传文件夹中。