Come ottenere l'URL dell'immagine in primo piano post di WordPress


144

Sto usando questa funzione per ottenere le immagini in primo piano:

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

Ora voglio ottenere l'immagine completa in primo piano facendo clic sul tag di ancoraggio per il quale ho bisogno di un URL dell'immagine in primo piano

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

Come posso risolvere questo problema?

Risposte:


302

Controlla il codice qui sotto e fammi sapere se funziona per te.

<?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
grazie mille è lavoro. voglio aggiungere anche condizioni. come se avessi post thumbail quindi mostra questo e in caso contrario un altro div o css o immagine predefinita qualsiasi idea di come
pag

2
l'ho fatto ma è il modo corretto o no non lo so. <?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

Grazie mille! Questo codice funziona perfettamente.
Calum Childs,

96

Se vuoi SOLO la fonte e non un array con altre informazioni:

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

 


Per versione 4.4.0 e successive wp_get_attachment_image_url().
Charlie Vieillard,

1
questo era esattamente quello di cui avevo bisogno. carica img src completo. grazie!
killscreen

1
wp_get_attachment_image_urlè applicabile solo se si conosce l'ID allegato (non ID post).
sicuramente il

Lo stavo cercando. Grazie amico :)
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 funzionerebbe effettivamente" invece di ': P Ma le virgolette non sono affatto necessarie.
Ivanka Todorova,


14

Questo ha funzionato perfettamente per me:

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

3
Nota: disponibile solo da Wordpress 4.4.0
MarcGuay l'

<? php echo get_the_post_thumbnail_url ($ post_id); ?> Se vuoi l'immagine a dimensione intera.
Sì,

7

Penso che questa sia la soluzione più semplice e quella aggiornata:

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

Quello che è in cima non ha funzionato (senza errori PHP, cosa che non volevo perché sto costruendo un tema WordPress per le masse) ma questo ha funzionato. +1
Calum Childs,

6

Questa è la risposta più semplice:

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

6

Puoi provare questo:

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

questa stampa solo: '$ feat_image';
Stefan Yohansson,

il mio errore è, echo $ feat_image;
nim

4

Prova questo

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

1
Utilizzare get_the_post_thumbnail_urlse si desidera solo l'URL dell'immagine.
Gavin,

3

Puoi provare questo.

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

3

Puoi anche ottenerlo da post_meta in questo modo:

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

3

È inoltre possibile ottenere l'URL per gli allegati alle immagini come segue. Funziona bene

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

Ci proverai

<?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

Avevo cercato molto e non avevo trovato nulla, finché non ho ottenuto questo:

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

Che ti dà semplicemente l'URL completo dell'immagine senza l'intero <img>tag.

Spero che ti possa aiutare.


0

Se il post è un'immagine e sappiamo già qual è l'immagine, è possibile ottenere l'URL della miniatura senza troppi problemi:

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

0

Uso:

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

    $feature_image_url = $image_src[0]; 
?>

È possibile modificare il thumbnail_sizevalore secondo la dimensione richiesta.


0

Puoi anche ottenere l'URL per gli allegati alle immagini come segue:

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

0

Semplicemente all'interno del ciclo scrivi <?php the_post_thumbnail_url(); ?>come mostrato di seguito: -

$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 ="" />

Puoi elaborare?
Peter Mortensen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.