Je dois obtenir l'image sélectionnée en dehors de la boucle. Cela me permet d'avoir une image d'arrière-plan plein écran différente pour chaque page, définie par l'image sélectionnée.
Après quelques recherches, j'ai pu sortir le post-ID de la boucle.
C'est ce que j'ai
$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;
Merci!
si le résultat recherché est une impression de l'URL, comme dans votre exemple, cela devrait alors fonctionner:
$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;
Vous avez quelques erreurs de syntaxe, mais dans votre question, vous dites que ...
Cela me permet d'avoir une image d'arrière-plan plein écran différente pour chaque page, définie par l'image sélectionnée.
wp_get_attachment_url
prend l'identifiant de pièce jointe réel, pas l'identifiant de page auquel l'image sélectionnée est attachée. Je suppose donc que la question est "Pourquoi ne reçois-je pas l'URL de l'image que j'attends?"
Ce dont vous avez besoin est d'utiliser get_post_thumbnail_id
et de le transmettre à wp_get_attacment_url
...
$bkgdImg = wp_get_attachment_url(get_post_thumbnail_id( $page_id ));
... éventuellement avec un argument second pour spécifier size .
J'espère que j'ai bien deviné :)
Cela a fonctionné et m'a donné l'URL de l'image:
$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;
Merci pour toute votre aide, cela m'a mis dans la bonne direction.
Ajouter un support de thème pour la vignette add_theme_support('post-thumbnails');
Ensuite, écrivez le code ci-dessous sur votre page d'archive. Cela fonctionne avant votre boucle 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;