Получение пути к миниатюре вместо HTML-тега изображения в WordPress

1 дек. 2010 г., 20:21:55
Просмотры: 11.5K
Голосов: 7

Я вижу много методов отображения миниатюр в WordPress, но не могу сразу понять, как получить только путь к миниатюре записи, а не HTML-код, генерируемый такими функциями, как the_post_thumbnail() и get_the_post_thumbnail().

Какие методы доступны для получения только пути к миниатюре (чтобы установить его как фоновое изображение), а не тега <img />? Есть ли у меня только вариант разбора результатов метода get_ или существует более простой способ?

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

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

PNMG PNMG
1 дек. 2010 г. 21:19:38

Все прикреплены к записям — это миниатюры записей.

Sampson Sampson
1 дек. 2010 г. 21:35:55
Все ответы на вопрос 4
0
10

Миниатюра по сути является вложением, поэтому к ней можно обратиться таким образом - найти ID с помощью get_post_thumbnail_id() и получить данные с помощью wp_get_attachment_image_src(), например:

if (has_post_thumbnail()) {
    $thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'thumbnail_name');
    echo $thumb[0]; // URL миниатюры
}

(источник)

1 дек. 2010 г. 21:10:40
0
get_the_post_thumbnail_url($recent['ID']);

Это сработало для меня! Мне пришлось угадать функцию, и она волшебным образом заработала!

Хорошо упомянуть, что в процессе я использовал цикл get_recent_posts.

21 дек. 2016 г. 04:20:33
0

Один из методов — преобразовать результат, возвращаемый функцией get_the_post_thumbnail(), в объект и извлечь атрибут src:

$thumbnail = new SimpleXMLElement( get_the_post_thumbnail( $postid ) );
print $thumbnail->attributes()->src;
1 дек. 2010 г. 20:34:07
0

Когда мне нужно отобразить миниатюру, прикрепленную к галерее записи, я использую пользовательскую функцию в своем файле functions.php. Возможно, это избыточно для ваших нужд, но она охватывает все необходимое.

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

function get_gallery_image_thumb_list($size){
global $post;
$args = array(
    'numberposts' => null,
    'post_parent' => $post->ID,
    'post_type' => 'attachment',
    'nopaging' => false,
    'post_mime_type' => 'image',
    'order' => 'ASC',
    'orderby' => 'menu_order ID',
    'post_status' => 'any'
);

$attachments =& get_children($args);
if ($attachments) {
    foreach($attachments as $attachment) {
        foreach($attachment as $attachment_key => $attachment_value) {

            $imageID = $attachment->ID;
            $imageTitle = $attachment->post_title;
            $imageCaption = $attachment->post_excerpt;
            $imageDescription = $attachment->post_content;
            $imageAlt = get_post_meta($imageID, '_wp_attachment_image_alt', true);
            $imageArray = wp_get_attachment_image_src($attachment_value, $size, false);
            $imageURI = $imageArray[0]; // 0 - это URI
            $imageWidth = $imageArray[1]; // 1 - ширина
            $imageHeight = $imageArray[2]; // 2 - высота

            // Собираем строку <img>
            $ImgString = '<li><a href="' . get_permalink() . '" title="' . the_title("", "", false) . '"><img src="' . $imageURI . '" width="' . $imageWidth . '" height="' . $imageHeight . '" alt="' . $imageAlt . '" title="' . $imageTitle . '" /></a></li>';
            // Выводим изображение
            echo $ImgString;
            break;
        }
    }
}

unset($args);}

Затем вызовите функцию и передайте размер изображения, которое хотите получить (thumbnail, medium, large или full), следующим образом:

get_gallery_image_thumb_list("thumbnail");

Этот вызов должен быть выполнен внутри The Loop или пользовательского цикла.

1 дек. 2010 г. 22:04:30