Funcție pentru a obține URL-ul imaginii originale încărcate - dimensiune completă

3 nov. 2014, 19:27:18
Vizualizări: 75.5K
Voturi: 15

În prezent folosesc următorul cod pentru a obține URL-ul imaginii reprezentative a unei postări WordPress:

URL="<?php if (function_exists('wp_get_attachment_thumb_url')) {echo wp_get_attachment_thumb_url(get_post_thumbnail_id($post->ID), 'big-size'); }?>"

Dar codul returnează doar miniatura mai mică (150x150px). Iată ce primesc:

http://sitename.com/wp-content/uploads/imagename-150x150.png

Întrebarea mea este, cum pot obține URL-ul pentru imaginea originală (imaginea la dimensiune completă) care ar fi:

http://sitename.com/wp-content/uploads/imagename.png

Mulțumesc mult pentru timpul și ajutorul acordat.

0
Toate răspunsurile la întrebare 3
4
41

Există patru dimensiuni predefinite în nucleul WordPress.

the_post_thumbnail('thumbnail');    // Miniatură (implicit 150px x 150px max)
the_post_thumbnail('medium');       // Rezoluție medie (implicit 300px x 300px max)
the_post_thumbnail('medium_large'); // Rezoluție medie mare (implicit 768px x 0(înălțime automată calculată după raport) max) din versiunea WP 4.4
the_post_thumbnail('large');        // Rezoluție mare (implicit 640px x 640px max)
the_post_thumbnail('full');         // Rezoluția originală a imaginii (nemodificată)

Ultima este cea pe care o căutați.

Următorul cod returnează URL-ul.

<?php
  $src = wp_get_attachment_image_src( $attachment_id, $size, $icon );
  echo $src[0];

Întregul cod poate arăta astfel:

<?php
  $src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full', false );
  echo $src[0]; // URL-ul imaginii reprezentative

Mai multe informații pot fi găsite aici.

3 nov. 2014 19:29:39
Comentarii

Mulțumesc pentru răspuns. De fapt caut o funcție care să returneze „URL-ul” imaginii și nu imaginea în sine. Așadar, mă îndoiesc că the_post_thumbnail va funcționa pentru asta. Sau poate mă înșel?

theshorttree theshorttree
3 nov. 2014 19:32:23

@theshorttree vezi răspunsul meu actualizat.

SLH SLH
3 nov. 2014 19:34:23

A funcționat perfect, mulțumesc mult pentru timpul acordat și pentru răspuns!

theshorttree theshorttree
3 nov. 2014 19:56:45

Încă relevant în 2022. Voiam o miniatură, dar the_post_thumbnail_url() returna imagini complete deoarece valoarea implicită a parametrului este 'post-thumbnail' în loc de 'thumbnail', dar noua mea temă personalizată nu o avea. Datorită acestei liste, am găsit soluția pentru a afișa miniaturi: <img class="post-thumb" src="<?php the_post_thumbnail_url('thumbnail') ?>">

nothingisnecessary nothingisnecessary
26 iul. 2022 05:15:58
1

Pentru cei care ajung aici după octombrie 2019

WordPress a introdus un "Prag pentru Imagini Mari" începând cu versiunea 5.3 (Link)

Pe scurt, toate imaginile mai mari de 2560px vor fi redimensionate la încărcare. Apelând formatul de imagine "full" nu va mai returna întotdeauna imaginea originală neatinsă, ci poate returna versiunea redusă la 2560px și va avea '-scaled' în URL și cale.

Puteți obține în continuare URL-ul și calea imaginilor încărcate inițial cu următoarele funcții: wp_get_original_image_path() sau wp_get_original_image_url(). Deși documentația sugerează că a fost adăugată o nouă dimensiune "original_image", wp_get_attachment_image, wp_get_attachment_image_src sau funcții similare returnează în continuare versiunea redusă. Deci, din câte am putut observa, nu există nicio modalitate de a obține dimensiunile originale ale fișierului etc.

3 mai 2020 02:08:55
Comentarii

Acesta ar trebui să fie răspunsul acceptat în prezent!

MCFreddie777 MCFreddie777
25 mar. 2021 17:12:38
0

Puțin întârziat la petrecere,

dar

get_the_post_thumbnail_url(null,'full'); face exact ceea ce trebuie, unde 'full' poate fi înlocuit cu 'thumbnail', 'medium', 'medium_large' sau 'large'.

10 nov. 2018 12:38:25