web-dev-qa-db-fra.com

Comment puis-je obtenir l'URL de l'image uniquement sur the_post_thumbnail

Je veux savoir comment obtenir l'URL de l'image sur the_post_thumbnail()

the_post_thumbnail() par défaut__

<img width="800" height="533" src="http://domain.com/wp-content/uploads/2011/02/book06.jpg" class="attachment-post-thumbnail wp-post-image" alt="book06" title="book06" />

Ici, je veux prendre le src seulement. Comment filtrer the_post_thumbnail() uniquement pour obtenir http://domain.com/wp-content/uploads/2011/02/book06.jpg

Faites le moi savoir

33
haha

Vous pourriez aussi essayer:

Si vous n'avez qu'une vignette de taille:

$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ) );

Ou ... si vous avez plusieurs tailles:

$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), "size" );

Notez que wp_get_attachment_image_src () renvoie un tableau: url, width, height, is_intermediate.

Donc, si vous ne voulez que l’URL de l’image:

echo $thumbnail[0];

Ressources:

41
Ross

Cela fait le tour:

<?php wp_get_attachment_image_src('subgall-thumb'); ?>

Assurez-vous que vous utilisez le nom correct pour la vignette que vous appelez.

2
Anna

Depuis WordPress 4.4, il existe une fonction de base efficace qui peut gérer cela de manière plus nette que les réponses fournies ici.

Vous pouvez utiliser the_post_thumbnail_url( $size ) qui imprimera l'URL de la vignette du message.

Alternativement, si vous souhaitez renvoyer l'URL au lieu de la sortir immédiatement, vous pouvez utiliser $url = get_the_post_thumbnail_url( $size )

1
cameronjonesweb

Veuillez utiliser le code ci-dessous

<?php get_the_post_thumbnail_url(); ?>

S'il ne suffit pas d'atteindre votre objectif, essayez ci-dessous le code

<?php $postimages = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'large' );

// Check for images if ( $postimages ) {

    // Get featured image   $postimage = $postimages[0];

} else {} while (have_posts() && $i < 8) : the_post(); echo esc_url( $postimage ); ?>
0
Jit Gurav

Ok je l'ai eu avec simplexml_load_string

$dom = simplexml_load_string(get_the_post_thumbnail());
$src = $dom->attributes()->src;
    echo $src;

Une autre méthode est la bienvenue.

0
haha

Pour une solution rapide et sale, claquez ceci dans le fichier functions.php de votre thème.

FUNCTION GET_STRING_BETWEEN($STRING, $START, $END){
    $STRING = " ".$STRING;
    $INI = STRPOS($STRING, $START);
    IF ($INI == 0) RETURN "";
    $INI += STRLEN($START);
    $LEN = STRPOS($STRING, $END, $INI) - $INI;
    RETURN SUBSTR($STRING, $INI, $LEN);
}

Utilisé dans la boucle, cela vous donnera ce que vous cherchez

Cela retournera quelque chose comme http://foo.com/wp-content/uploads/2019/02/toy-story-two-was-ok.jpg

$THE_FEATURED_IMAGE = GET_STRING_BETWEEN(get_the_post_thumbnail(NULL,'post-large'), 'src="', '" class="');

* "Within the loop" = chercher quelque chose comme while (have_posts ()): the_post ();

**Vous pouvez aussi sous-traiter "post-large"avec l’une de ces tailles d’image prédéfinies: post-miniature, post-moyen, post-complet

0
Taylor Hunt