Obter wp_get_attachment_url fora do loop

Preciso obter a imagem em destaque fora do loop. Isto é para que eu possa ter uma imagem de fundo de canvas cheia diferente para cada página, definida pela imagem em destaque.

Depois de fazer algumas pesquisas, consegui obter a ID da postagem fora do loop.

Isto é o que eu tenho:

$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; 

Obrigado!

Solutions Collecting From Web of "Obter wp_get_attachment_url fora do loop"

se o resultado que você procura for uma impressão do URL, como em seu exemplo, isso deve funcionar:

 $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; 

Isso funcionou e conseguiu o URL da imagem:

 $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; 

Obrigado por toda sua ajuda, me colocou na direção certa.

Você tem alguns erros de syntax, mas na sua pergunta, você afirma que …

Isto é para que eu possa ter uma imagem de fundo de canvas cheia diferente para cada página, definida pela imagem em destaque.

wp_get_attachment_url leva o ID do anexo atual, e não o ID da página ao qual a imagem em destaque está anexada. Eu, portanto, suponho que a questão é “Por que não estou obtendo o URL da imagem que eu espero?”

O que você precisa é usar get_post_thumbnail_id e passar para wp_get_attacment_url

 $bkgdImg = wp_get_attachment_url(get_post_thumbnail_id( $page_id )); 

… possivelmente com um segundo argumento para especificar o tamanho .

Espero ter adivinhado corretamente 🙂

Adicione suporte a tema para thumbnail add_theme_support('post-thumbnails');

Em seguida, escreva o código abaixo em sua página de arquivo. Ele funciona antes do seu loop 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;