Comment obtenir l'URL de l'image en vedette de l'article WordPress


144

J'utilise cette fonction pour obtenir les images en vedette:

<a href="#" rel="prettyPhoto">
    <?php the_post_thumbnail('thumbnail'); ?>
</a>

Maintenant, je veux obtenir l'image complète en cliquant sur la balise d'ancrage pour laquelle j'ai besoin d'une URL d'image en vedette dans

<a href="here" rel="prettyPhoto">

Comment puis-je réparer cela?

Réponses:


302

Vérifiez le code ci-dessous et faites-moi savoir si cela fonctionne pour vous.

<?php if (has_post_thumbnail( $post->ID ) ): ?>
  <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); ?>
  <div id="custom-bg" style="background-image: url('<?php echo $image[0]; ?>')">

  </div>
<?php endif; ?>

1
merci beaucoup c'est du travail. je veux ajouter aussi la condition. comme si vous avez une vignette de publication, montrez-la et sinon, un autre div ou css ou une image par défaut, une idée de comment
pagol

2
Je l'ai fait mais c'est la bonne façon ou non, je ne sais pas. <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); ?> <div class="section bannerarea cashstudybanner" style="background-image: url( <?php if ( has_post_thumbnail() ) { echo $image[0]; } else { ?> <?php bloginfo('template_directory'); ?>/images/common-banner.jpg <?php } ?> )">
pagol

Merci beaucoup! Ce code fonctionne parfaitement.
Calum Childs

96

Si vous voulez JUSTE la source, et non un tableau avec d'autres informations:

<?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'thumbnail' ); ?>
<img src="<?php echo $url ?>" />

 


Pour la version 4.4.0 et plus wp_get_attachment_image_url().
Charlie Vieillard le

1
c'était exactement ce dont j'avais besoin. charge img src complet. Merci!
killscreen

1
wp_get_attachment_image_urlne s'applique que si vous connaissez l'ID de la pièce jointe (pas l'ID de publication).
certainement

Je cherchais ça. Thanks man :)
Arman H

19
// Try it inside loop.  
<?php
$feat_image = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
echo $feat_image;
?>

4
@ gavard.e fonctionnerait en fait avec "au lieu de ': P Mais les guillemets ne sont pas du tout nécessaires.
Ivanka Todorova le


14

Cela a parfaitement fonctionné pour moi:

<?php echo get_the_post_thumbnail_url($post_id, 'thumbnail'); ?>

3
Remarque: Uniquement disponible depuis Wordpress 4.4.0
MarcGuay

<? php echo get_the_post_thumbnail_url ($ post_id); ?> Si vous voulez l'image en taille réelle.
yeahlad le

7

Je pense que c'est la solution la plus simple et la mise à jour:

<?php the_post_thumbnail('single-post-thumbnail'); ?>

Celui qui est en haut ne fonctionnait pas (sans erreurs PHP, ce que je ne voulais pas car je construis un thème WordPress pour le grand public) mais celui-ci l'a fait. +1
Calum Childs

6

Voici la réponse la plus simple:

<?php
    $img = get_the_post_thumbnail_url($postID, 'post-thumbnail');
?>

6

Vous pouvez essayer ceci:

<?php 
    $feat_image = wp_get_attachment_url(get_post_thumbnail_id($post->ID)); 
    echo $feat_image; 
?>

ceci n'imprime que: '$ feat_image';
Stefan Yohansson

mon erreur c'est, echo $ feat_image;
nim le

4

Essaye celui-là

<?php 
    echo get_the_post_thumbnail($post_id, 'thumbnail', array('class' => 'alignleft')); 
?>

1
À utiliser get_the_post_thumbnail_urlsi vous souhaitez uniquement l'URL de l'image.
Gavin

3

Vous pouvez essayer ceci.

<?php
   $image_url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
?>
<a href="<?php echo $image_url; ?>" rel="prettyPhoto">

3

Vous pouvez également l'obtenir à partir de post_meta comme ceci:

echo get_post_meta($post->ID, 'featured_image', true);

3

Vous pouvez également obtenir l'URL des pièces jointes d'image comme suit. Ça fonctionne bien.

if (has_post_thumbnail()) {
    $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'medium'); 
}

1
<?php
    if (has_post_thumbnail( $post->ID ) ):
        $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' );
?>
        <img src="<?php echo $image[0]; ?>">  
<?php endif; ?>

1

Vous allez essayer ceci

<?php $url = wp_get_attachment_url(get_post_thumbnail_id($post->ID), 'full'); ?> // Here you can manage your image size like medium, thumbnail, or custom size
    <img src="<?php echo $url ?>" 
/>

1

J'avais beaucoup cherché et je n'avais rien trouvé, jusqu'à ce que j'obtienne ceci:

<?php echo get_the_post_thumbnail_url( null, 'full' ); ?>

Ce qui vous donne simplement l'URL complète de l'image sans la <img>balise entière .

J'espère que cela peut vous aider.


0

Si l'article est une image et que nous savons déjà ce qu'est l'image, il est possible d'obtenir l'URL de la vignette sans trop de tracas:

echo pathinfo($image->guid, PATHINFO_DIRNAME);

0

Utilisation:

<?php 
    $image_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'thumbnail_size');

    $feature_image_url = $image_src[0]; 
?>

Vous pouvez modifier la thumbnail_sizevaleur selon votre taille requise.


0

Vous pouvez également obtenir l'URL des pièces jointes d'image comme suit:

<?php
    "<div><a href=".get_permalink(id).">".wp_get_attachment_url(304, array(50,50), 1)."</a></div>";
?>

0

Simplement à l'intérieur de la boucle, écrivez <?php the_post_thumbnail_url(); ?>comme indiqué ci-dessous: -

$args=array('post_type' => 'your_custom_post_type_slug','order' => 'DESC','posts_per_page'=> -1) ;
$the_qyery= new WP_Query($args);

if ($the_qyery->have_posts()) :
    while ( $the_qyery->have_posts() ) : $the_qyery->the_post();?>

<div class="col col_4_of_12">
    <div class="article_standard_view">
        <article class="item">
            <div class="item_header">
                <a href="<?php the_permalink(); ?>"><img src="<?php the_post_thumbnail_url(); ?>" alt="Post"></a>
            </div>

        </article>
    </div>
</div>            
<?php endwhile; endif; ?>

-1
<img src="<?php echo get_post_meta($post->ID, "mabp_thumbnail_url", true); ?>" alt="<?php the_title(); ?>" width ="100%" height ="" />

Peux-tu élaborer?
Peter Mortensen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.