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
评论
获取缩略图路径而不是图像标记的可能重复