我想知道如何在the_post_thumbnail()上获取图像URL,默认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

让我知道

评论

获取缩略图路径而不是图像标记的可能重复

#1 楼

您也可以尝试:

如果只有一个尺寸的缩略图:

$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];


资源:


http://wpcanyon.com/tipsandtricks/get-the-src-attribute-from -wordpress-post-thumbnail /
https://developer.wordpress.org/reference/functions/wp_get_attachment_image_src/


评论


一个小提示:如果您正在使用wp_get_attachment_image_src()函数使用大小,并且想要获得准确的缩略图大小:请使用定义中定义的缩略图名称(函数add_image_size())。如果您使用具有尺寸的数组,WP将使用具有适当宽度或高度的第一个图像尺寸。因此,您可能会得到错误的图像。例如:如果您定义了2张图片:156x98和120x98(高度相同),则可能不是120x98,而是156x98。我爱上了一次;)

– Marek Tuchalski
2011-10-16 15:15



#2 楼

这可以解决问题:

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


确保为要调用的缩略图使用正确的名称。

评论


我不知道自2012年以来情况是否有所改变,但是在2017年,wp_get_attachment_image_src的第一个参数必须是附件ID号,而不是大小。

– squarecandy
17年5月11日在22:07

#3 楼

从WordPress 4.4开始,有一个有效的核心功能可以比这里的答案更干净的方式处理此问题。 />或者,如果您想返回URL而不是立即输出,则可以使用the_post_thumbnail_url( $size )

#4 楼

请使用下面的代码

<?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 ); ?>


#5 楼

可以使用simplexml_load_string

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


可以使用另一种方法。

#6 楼

对于快速而肮脏的解决方案,请将其放在主题的functions.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();

**您还可以使用以下任何预定义的图像尺寸来细分“大图片”: />

评论


那很糟。为什么您将所有大写字母用作代码?

–猛禽
20年6月3日,2:17