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


33

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

Défaut the_post_thumbnail()

<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 puis-je filtrer the_post_thumbnail()uniquement pour obtenirhttp://domain.com/wp-content/uploads/2011/02/book06.jpg

Faites le moi savoir


Réponses:


41

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 () retourne un tableau: url, width, height, is_intermediate.

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

echo $thumbnail[0];

Ressources:


Un petit indice: si vous utilisez la fonction wp_get_attachment_image_src () avec une taille et souhaitez obtenir la taille exacte de la vignette: utilisez le nom de la vignette donnée dans la définition (fonction add_image_size ()). Si vous utilisez un tableau avec des dimensions, WP utilisera la première taille d'image avec une largeur ou une hauteur appropriée. Donc, vous risquez de vous tromper d'image. Exemple: au lieu de 156x98, vous pourriez avoir 120x98 si vous avez défini 2 images: 156x98 & 120x98 (la hauteur est la même). Je suis tombé pour ça une fois;)
Marek Tuchalski

2

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.


Je ne sais pas si cela a changé depuis 2012, mais en 2017, le premier paramètre de wp_get_attachment_image_srcdoit être le numéro d'identification de la pièce jointe, pas la taille.
squarecandy


0

Ok je l'ai utilisé 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

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

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 également sous -poster " post-large " avec n'importe laquelle de ces tailles d'image prédéfinies: post-vignette, post-support, post-plein

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.