Як отримати URL-адресу зображення лише на the_post_thumbnail


33

Я хочу знати, як увімкнути URL-адресу зображення the_post_thumbnail()

За замовчуванням the_post_thumbnail()

<img width="800" height="533" src="http://domain.com/wp-content/uploads/2011/02/book06.jpg" class="attachment-post-thumbnail wp-post-image" alt="book06" title="book06" />

Тут я хочу лише захопити src. Як я фільтрую the_post_thumbnail()лише для отриманняhttp://domain.com/wp-content/uploads/2011/02/book06.jpg

Дай мені знати


Відповіді:


41

Ви також можете спробувати:

Якщо у вас є лише мініатюра розміру:

$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ) );

Або ... якщо у вас кілька розмірів:

$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), "size" );

Зауважте, що wp_get_attachment_image_src () повертає масив: URL, ширина, висота, is_intermediate.

Тож якщо ви хочете лише URL-адресу зображення:

echo $thumbnail[0];

Ресурси:


Трохи підказки: якщо ви використовуєте функцію wp_get_attachment_image_src () з розміром і хочете отримати точний розмір ескізів: використовуйте ім'я мініатюри, вказане у визначенні (функція add_image_size ()). Якщо ви використовуєте масив із розмірами, WP використовуватиме перший розмір зображення, який має належну ширину чи висоту. Так ви можете отримати неправильний образ. Приклад: замість 156x98 у вас може бути 120x98, якщо у вас визначено 2 зображення: 156x98 & 120x98 (висота однакова). Я потрапив за це один раз;)
Марек Тучальський

2

Це робить трюк:

<?php wp_get_attachment_image_src('subgall-thumb'); ?>

Переконайтеся, що ви використовуєте правильну назву для мініатюри, яку ви дзвоните.


Я не знаю, чи змінилося це з 2012 року, але в 2017 році першим параметром wp_get_attachment_image_srcповинен бути номер вкладення, а не розмір.
squarecandy

2

Оскільки WordPress 4.4, існує ефективна основна функція, яка може впоратися з цим більш чітко, ніж відповіді тут.

Ви можете використовувати, the_post_thumbnail_url( $size )який буде надрукувати URL-адресу мініатюри публікації.

Якщо ви хочете повернути URL, а не відразу виводити його, ви можете використовувати $url = get_the_post_thumbnail_url( $size )


0

Гаразд отримав це за допомогою simplexml_load_string

$dom = simplexml_load_string(get_the_post_thumbnail());
$src = $dom->attributes()->src;
    echo $src;

Ще один метод вітається.


0

Будь ласка, використовуйте наведений нижче код

<?php get_the_post_thumbnail_url(); ?>

Якщо для досягнення мети цього недостатньо, спробуйте внизу код

<?php $postimages = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'large' );

// Check for images if ( $postimages ) {

    // Get featured image   $postimage = $postimages[0];

} else {} while (have_posts() && $i < 8) : the_post(); echo esc_url( $postimage ); ?>

0

Для швидкого та брудного вирішення ляпніть це у файлі function.php вашої теми

FUNCTION GET_STRING_BETWEEN($STRING, $START, $END){
    $STRING = " ".$STRING;
    $INI = STRPOS($STRING, $START);
    IF ($INI == 0) RETURN "";
    $INI += STRLEN($START);
    $LEN = STRPOS($STRING, $END, $INI) - $INI;
    RETURN SUBSTR($STRING, $INI, $LEN);
}

Використовується в циклі, це дасть вам те, що ви шукаєте

Це поверне щось на зразок http://foo.com/wp-content/uploads/2019/02/toy-story-two-was-ok.jpg

$THE_FEATURED_IMAGE = GET_STRING_BETWEEN(get_the_post_thumbnail(NULL,'post-large'), 'src="', '" class="');

* "У циклі" = шукайте щось на зразок while (have_posts ()): the_post ();

** Ви також можете виділити " після великого розміру " будь-якого з цих заздалегідь визначених розмірів зображення: пост-мініатюра, пост-середній, пост-повний

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.