WordPressで記事にアタッチされているサムネイル画像を取得する
WordPressの記事にアタッチされているサムネイル画像を取得するには、以下のようなコードを使用できます。
<?php
if ( has_post_thumbnail() ) {
$thumbnail_id = get_post_thumbnail_id();
$thumbnail_url = wp_get_attachment_image_src( $thumbnail_id, 'thumbnail-size', true );
echo '<img src="' . esc_url( $thumbnail_url[0] ) . '" alt="' . esc_attr( get_the_title() ) . '">';
}
?>
このコードでは、まず has_post_thumbnail()
関数を使用して、記事にサムネイル画像がアタッチされているかどうかを確認します。その後、 get_post_thumbnail_id()
関数を使用して、サムネイル画像のIDを取得し、 wp_get_attachment_image_src()
関数を使用して、サムネイル画像のURLを取得します。最後に、取得したURLを使用して img
要素を出力します。
wp_get_attachment_image_src()
関数の第二引数には、サムネイルサイズの名前を指定できます。例えば、WordPressがデフォルトで提供する thumbnail
サイズを使用する場合は、上記のコードの thumbnail-size
の部分を thumbnail
に変更することができます。また、 true
を指定することで、画像の幅と高さも取得できます。
サムネイルを取得する場合、'thumbnail-size'ではなく'thumbnail'なのでは?
ご指摘ありがとうございます。確かに、WordPressのデフォルトのサムネイルサイズの名称は thumbnail
であり、正しくは以下のように thumbnail
を指定する必要があります。
<?php
if ( has_post_thumbnail() ) {
$thumbnail_id = get_post_thumbnail_id();
$thumbnail_url = wp_get_attachment_image_src( $thumbnail_id, 'thumbnail', true );
echo '<img src="' . esc_url( $thumbnail_url[0] ) . '" alt="' . esc_attr( get_the_title() ) . '">';
}
?>
お手数おかけしました。