the_post_thumbnailでのみ画像URLを取得する方法


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

あなたも試してみてください:

サイズのサムネイルが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、width、height、is_intermediateの配列を返すことに注意してください。

画像のURLのみが必要な場合:

echo $thumbnail[0];

リソース:


ちょっとしたヒント:wp_get_attachment_image_src()関数をサイズで使用していて、正確なサムネイルサイズを取得したい場合:定義で指定されたサムネイル名を使用します(関数add_image_size())。次元の配列を使用する場合、WPは適切な幅または高さを持つ最初の画像サイズを使用します。そのため、間違った画像が表示される場合があります。例:156x98の代わりに、156x98と120x98の2つの画像が定義されている場合、120x98になります(高さは同じです)。私は一度それのために落ちました;)
マレックトゥチャルスキー

2

これはトリックを行います:

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

呼び出しているサムネイルに正しい名前を使用していることを確認してください。


これが2012年以降に変更されたかどうかはわかりませんが、2017年の最初のパラメーターはwp_get_attachment_image_srcサイズではなく添付ID番号でなければなりません。
squarecandy


0

OK 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();のようなものを探します

** サムネイル、ポストミディアム、ポストフルのこれらの事前定義された画像サイズのいずれかで「ポストラージ」を サブアウトすることもできます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.