如何仅在the_post_thumbnail上获取图像URL


33

我想知道如何获取图片网址 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

让我知道


Answers:


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,width,height,is_intermediate。

因此,如果您只想要图片网址:

echo $thumbnail[0];

资源:


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

2

这可以解决问题:

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

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


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


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

为了快速而又肮脏的解决方案,请将其拍入您主题的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();

**您还可以使用以下任何预定义的图像尺寸来细分“ 大图 ”: 缩略图后,中后,全图

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.