Jak uzyskać adres URL obrazu polecanego na WordPressie


144

Używam tej funkcji, aby uzyskać polecane obrazy:

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

Teraz chcę uzyskać pełny obraz po kliknięciu tagu kotwicy, dla którego potrzebuję adresu URL polecanego obrazu w

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

Jak mogę to naprawić?

Odpowiedzi:


302

Sprawdź poniższy kod i daj mi znać, czy działa w Twoim przypadku.

<?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
dziękuję bardzo, to jest praca. chcę dodać również warunek. na przykład jeśli masz miniaturę posta, pokaż to, a jeśli nie, to inny div lub css lub domyślny obraz, jakikolwiek pomysł
pagol

2
zrobiłem to, ale jest to poprawna droga, czy nie, nie wiem. <?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

Dziękuję Ci bardzo! Ten kod działa doskonale.
Calum Childs,

95

Jeśli chcesz TYLKO źródło, a nie tablicę z innymi informacjami:

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

 


Dla wersji 4.4.0 i nowszych wp_get_attachment_image_url().
Charlie Vieillard

1
to było dokładnie to, czego potrzebowałem. ładuje pełny plik img src. Dziękuję Ci!
killscreen

1
wp_get_attachment_image_urlma zastosowanie tylko wtedy, gdy znasz identyfikator załącznika (nie identyfikator posta).
pewnością do

Szukałem tego. Dzięki stary :)
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 faktycznie działałoby z "zamiast ': P Ale cudzysłowy nie są wcale potrzebne.
Ivanka Todorova


14

To doskonale zadziałało dla mnie:

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

3
Uwaga: dostępne tylko od Wordpress 4.4.0
MarcGuay

<? php echo get_the_post_thumbnail_url ($ post_id); ?> Jeśli chcesz uzyskać obraz w pełnym rozmiarze.
tak,

7

Myślę, że to najłatwiejsze rozwiązanie i zaktualizowane:

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

Ten, który jest na górze, nie działał (bez błędów PHP, których nie chciałem, ponieważ buduję motyw WordPress dla mas), ale ten zadziałał. +1
Calum Childs


6

Możesz spróbować tego:

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

to tylko drukuje: '$ feat_image';
Stefan Yohansson

mój błąd to echo $ feat_image;
nim

4

Spróbuj tego

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

1
Użyj, get_the_post_thumbnail_urljeśli chcesz mieć tylko adres URL obrazu.
Gavin

3

Możesz tego spróbować.

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

3

Możesz go również pobrać z post_meta w ten sposób:

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

3

Możesz również uzyskać adres URL załączników obrazu w następujący sposób. To działa dobrze.

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

Spróbujesz tego

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

Szukałem dużo i nic nie znalazłem, dopóki nie otrzymałem tego:

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

Które po prostu dają pełny adres URL obrazu bez całego <img>tagu.

Mam nadzieję, że to ci pomoże.


0

Jeśli post jest obrazem, a my już wiemy, co to za obraz, możliwe jest uzyskanie adresu URL miniatury bez większych problemów:

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

0

Posługiwać się:

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

    $feature_image_url = $image_src[0]; 
?>

Możesz zmienić thumbnail_sizewartość zgodnie z wymaganym rozmiarem.


0

Adres URL załączników do obrazów można również uzyskać w następujący sposób:

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

0

Po prostu wewnątrz pętli napisz, <?php the_post_thumbnail_url(); ?>jak pokazano poniżej: -

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

Czy możesz rozwinąć?
Peter Mortensen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.