2014-12-05 4 views
0

Я генерирую запрос для определенных сообщений в 'Trash'. Я могу получить URL-адрес признака, но я ищу способ получить расположение файла с изображенным файлом на сервере.Фактическое расположение файла в WordPress?

# generate the query 
foreach ($query as $post) { 
    $thumbID = get_post_thumbnail_id($post->ID); 
    $thumbObj = get_post($thumbID); 
    $source_url = $thumbObj->guid; 
    # how do I get the string "/path/to/wordpress/media/library/thumbnail.jpg" ? 
} 

Я не могу найти какую-либо функцию WordPress, которая возвращает фактическое местоположение файла изображения.

+1

вы имеете в виду что-то вроде этого: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src wp_get_attachment_image_src –

ответ

2

Нет функции wp, но ее достаточно легко сделать самостоятельно, например.

function return_image_path($thumbID) { 

    $image= wp_get_attachment_image_src($thumbID); 
    $imagepath= str_replace(get_site_url(), $_SERVER['DOCUMENT_ROOT'], $image[0]); 

    if($imagepath) return $imagepath; 

    return false; 

} 
+0

Очень близко, хотя в коде предполагается, что WordPress установлен в корневой каталог. Однако это привело меня к тому, чтобы найти функцию wp_upload_dir() с очень похожим решением. – johnh10

1

Расширяя ответ Давида, это работает для меня:

function return_image_path($thumbID) { 
        $thumbID = get_post_thumbnail_id($post->ID); 
        $image= wp_get_attachment_image_src($thumbID); 
        $upload_dir = wp_upload_dir(); 
        $base_dir = $upload_dir['basedir']; 
        $base_url = $upload_dir['baseurl']; 
        $imagepath= str_replace($base_url, $base_dir, $image[0]); 
        if (file_exists($imagepath)) return $imagepath; 
        return false; 
} 
0
$post_thumbnail_id = get_post_thumbnail_id($post->ID); 
var_dump(get_attached_file($post_thumbnail_id)); 
Смежные вопросы