注目の画像をループの外に出す必要があります。これは、各ページに、フルスクリーンの背景画像を、特色のある画像で設定して、別々に表示できるようにするためです。
いくつかの調査を行った後、投稿IDをループの外に出すことができました。
これは私が持っているものです:
$page_object = get_queried_object();
$page_id = get_queried_object_id();
$bkgdImg = wp_get_attachment_url( $page_id );
if (!empty($bkgdImg)) {
$backgroundImg = $bkgdImg;
}
else {
$defaultbackground = . get_template_directory_uri() . "/images/default-background.jpg";
$backgroundImg = $defaultBackground;
}
echo $backgroundImg;
ありがとうございます。
あなたの例のようにあなたが探している結果がURLのプリントアウトであるならば、これはうまくいくはずです:
$page_id = get_queried_object_id();
if ( has_post_thumbnail( $page_id ) ) :
$image_array = wp_get_attachment_image_src( get_post_thumbnail_id( $page_id ), 'optional-size' );
$image = $image_array[0];
else :
$image = get_template_directory_uri() . '/images/default-background.jpg';
endif;
echo $image;
あなたはいくつかの構文エラーを持っています、しかしあなたの質問であなたはそれを述べています...
これは、各ページに、フルスクリーンの背景画像を、特色のある画像で設定して、別々に表示できるようにするためです。
wp_get_attachment_url
は、注目の画像が添付されているページIDではなく、実際の添付IDを取得します。そのため、質問は「予想される画像のURLが取得できないのはなぜですか」と想定します。
必要なのはget_post_thumbnail_id
を使用してそれをwp_get_attacment_url
..に渡すことです。
$bkgdImg = wp_get_attachment_url(get_post_thumbnail_id( $page_id ));
...サイズを指定するための 秒引数を付けて - 。
私は正しく推測したと思います:)
これでうまくいき、画像のURLを取得できました。
$page_id = get_queried_object_id();
$post_thumbnail_id = get_post_thumbnail_id( $page_id );
$bkgdImg = wp_get_attachment_url( $post_thumbnail_id );
echo $bkgdImg;
あなたのすべての助けをありがとう、それは正しい方向に私を置きました。
サムネイルのテーマサポートを追加add_theme_support('post-thumbnails');
それからあなたのアーカイブページに以下のコードを書いてください。それはあなたのWordPressループの前に動作します
$thumb_id = get_post_thumbnail_id();
$thumb_url_array = wp_get_attachment_image_src($thumb_id, 'thumbnail-size', true);
$thumb_url = $thumb_url_array[0];
echo $thumb_url;